A powerful and scalable Project Management Backend API built with the MERN stack ecosystem. Designed to support team collaboration, task management, and role-based access control with production-ready architecture.
Project Camp Backend is a RESTful API that enables teams to:
- Manage projects efficiently
- Assign and track tasks & subtasks
- Collaborate with team members
- Maintain structured project notes
- Ensure secure authentication & authorization
- JWT-based authentication (Access + Refresh Tokens)
- Email verification system
- Forgot / Reset password flow
- Role-based access control (Admin, Project Admin, Member)
- Create, update, delete projects
- View project details with members
- Role-based project access
- Add/remove members via email
- Assign roles within projects
- Manage permissions dynamically
- Create tasks with descriptions & assignees
- Status tracking:
Todo,In Progress,Done - File attachments support
- Task updates & deletion
- Nested task structure
- Mark completion individually
- Controlled access based on roles
- Create and manage notes
- Admin-controlled editing
- Organized project documentation
- Dedicated health check endpoint
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- Multer (File Uploads)
- Nodemailer (Emails)
POST /api/v1/auth/register
POST /api/v1/auth/login
POST /api/v1/auth/logout
GET /api/v1/auth/current-user
POST /api/v1/auth/change-password
POST /api/v1/auth/refresh-token
GET /api/v1/auth/verify-email/:token
POST /api/v1/auth/forgot-password
POST /api/v1/auth/reset-password/:token
GET /api/v1/projects/
POST /api/v1/projects/
GET /api/v1/projects/:projectId
PUT /api/v1/projects/:projectId
DELETE /api/v1/projects/:projectId
GET /api/v1/tasks/:projectId
POST /api/v1/tasks/:projectId
PUT /api/v1/tasks/:projectId/t/:taskId
DELETE /api/v1/tasks/:projectId/t/:taskId
GET /api/v1/notes/:projectId
POST /api/v1/notes/:projectId
PUT /api/v1/notes/:projectId/n/:noteId
DELETE /api/v1/notes/:projectId/n/:noteId
GET /api/v1/healthcheck/
| Feature | Admin | Project Admin | Member |
|---|---|---|---|
| Create Project | ✅ | ❌ | ❌ |
| Manage Members | ✅ | ❌ | ❌ |
| Manage Tasks | ✅ | ✅ | ❌ |
| View Tasks | ✅ | ✅ | ✅ |
| Manage Notes | ✅ | ❌ | ❌ |
git clone https://github.com/Yashhh25/PingMe.git
cd PingMe/backendnpm installCreate .env file:
PORT=5000
MONGO_URI=your_mongodb_uri
ACCESS_TOKEN_SECRET=your_secret
REFRESH_TOKEN_SECRET=your_secret
EMAIL_USER=your_email
EMAIL_PASS=your_password
npm run dev- Supports multiple file attachments
- Stored in
public/images - Metadata tracked (URL, type, size)
- JWT authentication with refresh tokens
- Role-based authorization middleware
- Input validation on all routes
- Secure file uploads
- CORS protection
- WebSocket integration for real-time updates
- Notifications system
- Activity logs
- Deployment with Docker
Yash Full Stack Developer 🚀
If you like this project, give it a ⭐ on GitHub!