A full-stack task management application built with Angular 19, Node.js, Express.js, and MongoDB. Features organization-based multi-tenancy, role-based access control (user/admin/super), task assignment and tracking, and responsive design with Tailwind CSS.
- Features
- Technologies Used
- Prerequisites
- Installation
- Running the Application
- API Endpoints
- Usage
- License
- User authentication with JWT (register, login, auto-logout)
- Organization-based multi-tenancy with member management
- Role-based access control: user, admin, super
- Task CRUD with assignment to organization members
- Task filtering by status, priority, and search
- Subtask/checklist support
- Activity log per task
- Dashboard with task statistics
- Responsive design using Tailwind CSS
- Backend: Node.js, Express.js, MongoDB, Mongoose, JWT, bcryptjs, Helmet, express-rate-limit, Swagger
- Frontend: Angular 19, Tailwind CSS, RxJS
- Authentication: JSON Web Tokens (JWT)
- Node.js (v18.x or later)
- Angular CLI (v19.x or later)
- MongoDB (local or Atlas instance)
-
Clone the repository:
git clone https://github.com/manthanank/task-management-app.git cd task-management-app/backend -
Install dependencies:
npm install
-
Create a
.envfile in thebackenddirectory (see.env.example):PORT=3000 MONGODB_USER=your_mongodb_user MONGODB_PASSWORD=your_mongodb_password MONGODB_DBNAME=tasksdb MONGODB_HOST=cluster0.example.mongodb.net JWT_SECRET=your_strong_random_secret CORS_ORIGIN=http://localhost:4200
-
Start the backend server:
npm start
-
Navigate to the project root:
cd task-management-app -
Install dependencies:
npm install
-
Start the frontend development server:
ng serve
- The backend server runs on
http://localhost:3000 - The frontend server runs on
http://localhost:4200 - API documentation is available at
http://localhost:3000/api-docs
- POST /api/auth/register — Register a new user (optionally with organization)
- POST /api/auth/login — Login and receive JWT token
- POST /api/auth/logout — Logout
- GET /api/auth/users — Get all users (authenticated)
- GET /api/tasks — Get all tasks (organization-scoped)
- GET /api/tasks/ongoing — Get ongoing tasks (with search, filter, sort)
- GET /api/tasks/completed — Get completed tasks
- GET /api/tasks/user — Get current user's tasks
- GET /api/tasks/summary/stats — Get task statistics
- GET /api/tasks/:id — Get task by ID
- GET /api/tasks/:id/activities — Get task activity log
- POST /api/tasks — Create a new task (admin)
- PUT /api/tasks/:id — Update a task
- DELETE /api/tasks/:id — Delete a task
- GET /api/users — Get all users (paginated)
- GET /api/users/organization — Get users in same organization
- GET /api/users/profile — Get current user's profile
- GET /api/users/:id — Get user by ID
- PUT /api/users/:id — Update user
- DELETE /api/users/:id — Delete user (admin)
- GET /api/organizations — Get all organizations (admin)
- GET /api/organizations/my — Get current user's organization
- GET /api/organizations/:id — Get organization by ID
- POST /api/organizations — Create organization (admin)
- PUT /api/organizations/:id — Update organization (admin)
- DELETE /api/organizations/:id — Delete organization (owner)
- GET /api/organizations/:id/members — Get organization members
- POST /api/organizations/:id/members — Add member (admin)
- DELETE /api/organizations/:id/members — Remove member (admin)
- Register — Create a new account, optionally creating or joining an organization.
- Log In — Authenticate to access the task management features.
- Dashboard — View task statistics for your organization.
- Tasks — Create, view, edit, delete, and filter tasks. Assign tasks to organization members.
- Organizations — Manage organization members (admin/super roles).
- Profile — View your profile and organization role.
This project is licensed under the MIT License. See the LICENSE file for details.