Skip to content

Repository files navigation

Project Camp Backend

License Node Express

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).

Key Features

  • 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!

🛠️ Tech Stack

  • Runtime: Node.js
  • Framework: Express.js (v5)
  • Database: MongoDB & Mongoose
  • Security: Helmet, bcrypt, JSONWebToken (JWT)
  • File Uploads: Multer
  • Email: Nodemailer & Mailgen

📦 Getting Started

1. Clone the repository

git clone https://github.com/yourusername/ProjectCamp.git
cd ProjectCamp

2. Install dependencies

npm install

3. Setup Environment Variables

Copy the .env.example file and rename it to .env. Fill in your actual MongoDB URI, Mailtrap credentials, and token secrets.

cp .env.example .env

4. Run the Development Server

npm run dev

The server will start on http://localhost:8000.

📚 API Documentation

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.

📄 License

This project is open-source and licensed under the MIT License.

About

A robust RESTful API for collaborative project management. Features JWT authentication, role-based access control (RBAC), hierarchical task tracking, file attachments, and interactive Swagger documentation. Built with Express.js and MongoDB.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages