A production-grade, full-stack SaaS-style Team Task Manager built with modern technologies. Manage projects, assign tasks, and track progress with role-based access control.
- Overview
- Features
- Tech Stack
- Architecture
- Setup Instructions
- Environment Variables
- API Documentation
- Screenshots
- Live Demo
TaskFlow is a team collaboration platform that enables administrators to create projects, manage team members, and assign tasks with full lifecycle tracking. Members can view their assignments and update task statuses in real time. The dashboard provides visual insights into project health, task distribution, and overdue items.
- π JWT-based authentication with bcrypt password hashing
- π₯ Role-based access control (Admin / Member)
- π Interactive dashboard with charts and progress tracking
- β‘ Real-time overdue task detection
- π¨ Modern SaaS-grade UI with smooth animations
- Secure signup and login with JWT tokens
- Password hashing with bcrypt (12 salt rounds)
- Token-based session management
- Automatic logout on token expiration
- Create, edit, and delete projects
- Add/remove team members
- View project progress and task statistics
- Cascading deletion (project + associated tasks)
- Create tasks with title, description, assignee, due date
- Status tracking: To Do β In Progress β Done
- Filter tasks by status and overdue state
- Dynamic overdue highlighting
- Members can only update status of their assigned tasks
- Overview cards: total projects, tasks, completed, overdue
- Task distribution pie chart
- Per-project progress bar chart
- Project breakdown with individual progress bars
- Recent activity feed
- Clean, modern SaaS-style interface
- Sidebar navigation with active state indicators
- Smooth CSS animations and transitions
- Toast notifications for all actions
- Loading states and empty state placeholders
- Responsive layout design
| Layer | Technology |
|---|---|
| Frontend | React 19, Tailwind CSS 4, Vite |
| Backend | Node.js, Express 4 |
| Database | MongoDB with Mongoose ODM |
| Auth | JWT, bcryptjs |
| Validation | Joi |
| Charts | Recharts |
| Icons | Lucide React |
| HTTP | Axios |
| Routing | React Router v7 |
team-task-manager/
βββ backend/
β βββ src/
β β βββ config/ # Database connection
β β βββ controllers/ # Request handlers (thin layer)
β β βββ middleware/ # Auth, validation, error handling
β β βββ models/ # Mongoose schemas (User, Project, Task)
β β βββ routes/ # Express route definitions
β β βββ services/ # Business logic (separation of concerns)
β β βββ validators/ # Joi validation schemas
β β βββ utils/ # Seed script, helpers
β β βββ app.js # Express app setup
β β βββ server.js # Entry point
β βββ .env.example
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ hooks/ # Custom hooks (useAuth)
β β βββ layouts/ # App layout with sidebar
β β βββ pages/ # Page components
β β βββ services/ # API client (Axios)
β β βββ App.jsx # Root component with routing
β β βββ main.jsx # Entry point
β β βββ index.css # Global styles & design tokens
β βββ vite.config.js
β βββ package.json
βββ package.json # Monorepo root
βββ README.md
- Separation of Concerns: Controllers β Services β Models
- Centralized Error Handling: All errors flow through middleware
- Validation First: Joi schemas validate all inputs before processing
- Role Enforcement: Middleware + service-level role checks
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn
git clone https://github.com/YOUR_USERNAME/team-task-manager.git
cd team-task-manager# Install backend dependencies
cd backend && npm install
# Install frontend dependencies
cd ../frontend && npm install# Copy example env
cp backend/.env.example backend/.envEdit backend/.env with your MongoDB URI and a strong JWT secret.
cd backend
npm run seedThis creates two test users:
- Admin: admin@ttm.com / admin123
- Member: member@ttm.com / member123
Terminal 1 β Backend:
cd backend
npm run devTerminal 2 β Frontend:
cd frontend
npm run devThe app will be available at http://localhost:5173
| Variable | Description | Default |
|---|---|---|
PORT |
Backend server port | 5000 |
MONGO_URI |
MongoDB connection string | mongodb://localhost:27017/ttm |
JWT_SECRET |
JWT signing secret | (required) |
JWT_EXPIRES_IN |
Token expiration | 7d |
NODE_ENV |
Environment mode | development |
FRONTEND_URL |
CORS allowed origin | http://localhost:5173 |
| Method | Endpoint | Access | Description |
|---|---|---|---|
| POST | /api/auth/signup | Public | Register user |
| POST | /api/auth/login | Public | Authenticate user |
| GET | /api/auth/me | Auth | Get current user |
| Method | Endpoint | Access | Description |
|---|---|---|---|
| GET | /api/projects | Auth | List user projects |
| GET | /api/projects/:id | Auth | Get project details |
| POST | /api/projects | Admin | Create project |
| PUT | /api/projects/:id | Admin | Update project |
| DELETE | /api/projects/:id | Admin | Delete project |
| Method | Endpoint | Access | Description |
|---|---|---|---|
| GET | /api/tasks | Auth | List tasks |
| GET | /api/tasks/:id | Auth | Get task details |
| POST | /api/tasks | Admin | Create task |
| PUT | /api/tasks/:id | Auth* | Update task |
| DELETE | /api/tasks/:id | Admin | Delete task |
*Members can only update the status field of tasks assigned to them.
| Method | Endpoint | Access | Description |
|---|---|---|---|
| GET | /api/dashboard | Auth | Get dashboard stats |
| Method | Endpoint | Access | Description |
|---|---|---|---|
| GET | /api/users | Auth | List all users |
Screenshots will be added after deployment.
π Live URL: Will be added after Railway deployment
- Admin: admin@ttm.com / admin123
- Member: member@ttm.com / member123
- Introduction (30s): Overview of TaskFlow and its purpose
- Authentication Flow (30s): Signup as admin, logout, login again
- Project Creation (45s): Create a project, add members
- Task Assignment (45s): Create tasks, assign to members, set due dates
- Dashboard Overview (30s): Show stats, charts, progress bars
- Role-Based Access (45s): Login as member, show restricted actions, update task status
MIT Β© 2024
Built with β and clean architecture principles.