Kanban board that just works in your browser (even when you have no internet)
npm install
npm run dev
npm run build
I will be adding a dragram/details to explain architecture properly. Here is the few bullet points of architecture/tech stack,
- View (ReactJS) responds to state changes (Mobx: state management)
- Most of Kanban board logic (add cards, remove cards, add list, move cards to lists and etc) is in
stores/kanban.js
- Everytime state changes (in
KanbanStore
) it auto saves a snapshot ofKanbanBoard
state toPouchDB (IndexedDB/WebSQL)
- All assets (including html) are cached in browser using
AppCache
,Service Workers
look for any new changes and auto updates the cache / reload the browser (Todo: show a button to refresh). - Since
PouchDB
in this case is just storing everything locally the whole thing is available offline. CSS Modules
to avoid global conflicts and to decipline myself in writing css per component only.Travis
is used for CI and app is deployed to heroku automatically after CI passes. Check
- Make it mobile friendly (components/controls specific to mobile)
- Abstract store
- Create decorators or contains for drag and drop operations
- Improve sorting (it breaks from time to time)
- Move from Card and List into either parent level container or store
- Rename functions/variables to be more readible
- Performance optimisations (too many filtering here and there)