Giter VIP home page Giter VIP logo

bbboard's Introduction

BBBoards

A simple kanban board app built with React, TypeScript, and Vite.

Running the app

npm install # install deps
npm run dev

Features

  • Standard Board features:
    • List/Create boards
    • Add column
    • Move column (DnD)
    • Rename column
    • Delete empty column
    • Create card
    • Move card (DnD)
    • Open card
    • Update card details (name, description, status, archive)
  • Testing:
    • Unit tests
    • E2E tests (Cypress test)
    • Graceful error handling (Error boundary with message)
  • Other features:
    • Multiple boards
    • i18n
    • More fields
  • PWA:
    • Install button (can install on desktop and mobile. Netlify deploy for testing)
    • Persistted data to local storage
    • Push notification after creating card (notification sent locally, not remote push notification)
  • Performance:
    • Windowing using react-window for cards in column
    • Code splitting (lazy loading react-router pages)
  • Design
    • RWD (not perfect but works looks okay on small devices)
    • Show description when list is empty (when boards list is empty)
    • 404 page
  • UX
    • Auto focus on initial state (auto focus input when adding new items via dialogs)
    • Input validation (when adding new items name is required/validated)

Board data is stored in individual local storage entries. Cards in column are shown within a virtual list (react-window).

e2e Testing

Run development server and open Cypress App:

npm run dev
npm run cypress:open
  • Select E2E Testing in the Cypress App
  • Select Chrome (perhaps other browsers work as well)
  • Click Start E2E Testing in Chrome
  • Click on bbboard.cy.js to run the e2e test

Run e2e test from command line:

npm run dev
npm run test

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

  • Configure the top-level parserOptions property like this:
export default {
  // other rules...
  parserOptions: {
    ecmaVersion: "latest",
    sourceType: "module",
    project: ["./tsconfig.json", "./tsconfig.node.json"],
    tsconfigRootDir: __dirname,
  },
};
  • Replace plugin:@typescript-eslint/recommended to plugin:@typescript-eslint/recommended-type-checked or plugin:@typescript-eslint/strict-type-checked
  • Optionally add plugin:@typescript-eslint/stylistic-type-checked
  • Install eslint-plugin-react and add plugin:react/recommended & plugin:react/jsx-runtime to the extends list

bbboard's People

Contributors

sljuka avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.