Project Camp is a robust RESTful API designed to support collaborative project management. It enables teams to organize projects, manage tasks with subtasks, maintain project notes, and handle user authentication with advanced role-based access control (RBAC).
Author: Biswajit Samal
Note: For a detailed look at the original architecture planning, please refer to the Product Requirements Document (PRD.md).
- Advanced Authentication: JWT-based login, secure HTTP-only cookies, refresh token rotation, and email verification.
- Role-Based Access Control (RBAC): Fine-grained permissions for Admins, Project Admins, and Members.
- Project & Task Management: Full hierarchical CRUD for Projects, Tasks, and Subtasks.
- File Attachments: Local file upload handling using
multer. - Security Hardened: Protected with
helmet,express-rate-limit, and a custom Global Error Handling middleware. - Interactive API Docs: Explore and test the API directly from your browser using Swagger!
- Runtime: Node.js
- Framework: Express.js (v5)
- Database: MongoDB & Mongoose
- Security: Helmet, bcrypt, JSONWebToken (JWT)
- File Uploads: Multer
- Email: Nodemailer & Mailgen
git clone https://github.com/yourusername/ProjectCamp.git
cd ProjectCampnpm installCopy the .env.example file and rename it to .env. Fill in your actual MongoDB URI, Mailtrap credentials, and token secrets.
cp .env.example .envnpm run devThe server will start on http://localhost:8000.
You do not need Postman to test this API! Once the server is running, simply navigate to:
👉 http://localhost:8000/api-docs
This will open an interactive Swagger UI webpage where you can view all available routes, see required JSON payloads, and test the endpoints directly from your browser.
This project is open-source and licensed under the MIT License.