Join is a browser-based task management app inspired by Kanban workflows. It includes user registration/login, contact management, task creation, drag-and-drop board updates, and a live summary dashboard.
- Authentication flow: sign up, log in, guest log in, and remembered session state.
- Task management: create, edit, delete, assign contacts, define priorities, due dates, and subtasks.
- Kanban board: tasks grouped by status (
toDo,inProgress,awaitFeedback,done) with drag-and-drop movement. - Search & filtering behavior on board cards.
- Summary dashboard: live counters for key metrics (to-do, done, urgent, in progress, awaiting feedback).
- Contacts area: create and maintain assignable contacts.
- Frontend: HTML, CSS, vanilla JavaScript (no framework/build step).
- Backend: Firebase Realtime Database (REST API via
fetch). - State storage:
sessionStorageandlocalStoragefor UI/session behavior.
.
├── index.html # Login entry page
├── summary.html # Dashboard
├── board.html # Kanban board
├── add_task.html # Task creation flow
├── contacts.html # Contact management
├── script/ # Application logic (auth, board, summary, contacts, Firebase access)
├── style/ # Page and component styles
└── assets/ # Icons, images, fonts
Because this is a static frontend app, run it through a local web server:
# from repository root
python3 -m http.server 8000Then open http://localhost:8000.
Firebase base URL is defined in:
script/firebase.js→BASE_URL
If you want to connect your own backend instance, update this value to your Firebase Realtime Database URL.
- Keep the app framework-free (vanilla JS + static assets).
- Prefer small, page-focused modules under
script/andstyle/. - Validate user-facing form inputs and preserve current UI behavior patterns.