Flowboard is a fully responsive task tracking web application that lets teams organize their work into workspaces, projects, and Kanban-style boards — complete with team collaboration and per-workspace analytics.
Here's what Flowboard looks like in action, from workspace overview to board management.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Frontend
- Angular 16
- Angular Material (UI components)
- Angular CDK Drag & Drop (moving tasks between columns on the board view)
- Angular Reactive Forms
- Chart.js / ng2-charts (workspace analytics)
- SweetAlert2 (alerts and confirmations) Backend
- Node.js 18 (Express.js)
- MongoDB with Mongoose
- JWT (authentication)
- bcrypt (password hashing)
- Nodemailer (workspace and project invitation emails)
- dotenv (environment variable management)
- Home page
- About page
- Privacy policy page
- Footer
- User registration
- User login (JWT-based)
- Protected routes via route guard
- Create, view, and manage workspaces
- Workspace list with search and navigation
- Per-workspace statistics dashboard (charts, activity overview)
- Create and manage projects within a workspace
- Project details view
- Kanban-style board view per project
- Drag-and-drop tasks between columns
- Task creation, editing, and status tracking
- Node.js 18+
- MongoDB (local instance or a cloud database like MongoDB Atlas)
- npm
git clone https://github.com/hamayari15/FlowBoard.git
cd FlowBoardcd backend
npm installCreate a .env file inside the backend folder with the following variables:
PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
SMPT_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email
SMTP_PASS=your_email_app_password
node server.jsThe API will be available at http://localhost:3000.
In a new terminal:
cd frontend
npm install
ng serveThe app will be available at http://localhost:4200.
flowboard/
├── backend/
│ ├── db/ # database connection logic
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── scripts/
│ ├── services/
│ ├── server.js
│ └── .env # not tracked in git
│
└── frontend/
└── src/
└── app/
├── features/
│ ├── home/
│ ├── about/
│ ├── privacy/
│ ├── page-not-found/
│ ├── navbar/
│ ├── footer/
│ ├── auth/
│ │ ├── register/
│ │ └── login/
│ ├── work-spaces-list/
│ ├── work-space-details/
│ ├── work-space-dialog/
│ ├── work-space-stats/
│ ├── workspace-invite-dialog/
│ ├── project-details/
│ ├── project-dialog/
│ ├── project-invite-dialog/
│ ├── board-view/
│ ├── board-dialog/
│ ├── task-dialog/
│ ├── task-detail-dialog/
│ └── edit-comment-dialog/
│
├── core/
│ ├── guards/
│ │ └── user.guard.ts
│ └── services/
│
├── app-routing.module.ts
└── app.module.ts
## 🗂️ Class Diagram






















