A scalable and production-ready REST API built with Node.js, Express.js, and MongoDB for managing projects, team members, tasks, subtasks, and notes.
Designed using a modular architecture with authentication, authorization, request validation, and reusable utilities to keep the codebase clean and maintainable.
- User Registration
- User Login
- JWT Authentication
- Access & Refresh Tokens
- Email Verification
- Protected Routes
- Role-Based Authorization
- Create Project
- Update Project
- Delete Project
- Get All Projects
- Get Project by ID
- Add Members to Project
- View Project Members
- Update Member Roles
- Remove Members
- Permission-based Access Control
- Create Tasks
- Manage Subtasks
- Track Project Progress
- Create Notes
- Organize Notes Project-wise
- Request Validation
- Centralized Error Handling
- Async Error Wrapper
- Modular Folder Structure
- RESTful API Design
- MongoDB Aggregation
- Environment Variable Support
| Technology | Purpose |
|---|---|
| Node.js | Runtime |
| Express.js | Backend Framework |
| MongoDB | Database |
| Mongoose | ODM |
| JWT | Authentication |
| Nodemailer | Email Verification |
| dotenv | Environment Variables |
| CORS | Cross-Origin Requests |
backend-project/
│
├── controllers/
├── models/
├── routes/
├── middlewares/
├── validators/
├── utils/
├── db/
│
├── app.js
├── index.js
│
└── .env
Clone the repository
git clone https://github.com/yishaan8/backend-project.gitMove into the project
cd backend-projectInstall dependencies
npm installCreate a .env file
PORT=5000
MONGODB_URI=your_mongodb_connection
ACCESS_TOKEN_SECRET=your_secret
REFRESH_TOKEN_SECRET=your_secret
CORS_ORIGIN=http://localhost:3000Run the server
npm startor
npm run devUser Registration
│
▼
Verification Email Sent
│
▼
Email Verification
│
▼
User Login
│
▼
Access Token + Refresh Token
│
▼
Protected APIs
- Register User
- Login User
- Verify Email
- Refresh Tokens
- Get All Projects
- Get Project by ID
- Create Project
- Update Project
- Delete Project
- Add Members
- Get Members
- Update Member Role
- Remove Member
- CRUD Operations
- CRUD Operations
- CRUD Operations
- JWT Authentication
- Refresh Token Support
- Email Verification
- Protected Routes
- Role-Based Permissions
- Request Validation
- Docker Support
- Swagger API Documentation
- Unit & Integration Testing
- Redis Caching
- Rate Limiting
- Logging with Winston
- CI/CD Pipeline
- File Upload Support
- API Versioning
Ishaan Yadav
GitHub: https://github.com/yishaan8
If you found this project useful, consider giving it a Star ⭐ on GitHub.
It helps others discover the project and motivates further development.