Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Project Management Backend API

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.


✨ Features

🔐 Authentication & Security

  • User Registration
  • User Login
  • JWT Authentication
  • Access & Refresh Tokens
  • Email Verification
  • Protected Routes
  • Role-Based Authorization

📁 Project Management

  • Create Project
  • Update Project
  • Delete Project
  • Get All Projects
  • Get Project by ID

👥 Team Management

  • Add Members to Project
  • View Project Members
  • Update Member Roles
  • Remove Members
  • Permission-based Access Control

✅ Task Management

  • Create Tasks
  • Manage Subtasks
  • Track Project Progress

📝 Notes

  • Create Notes
  • Organize Notes Project-wise

⚡ Backend Features

  • Request Validation
  • Centralized Error Handling
  • Async Error Wrapper
  • Modular Folder Structure
  • RESTful API Design
  • MongoDB Aggregation
  • Environment Variable Support

🛠 Tech Stack

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

📂 Project Structure

backend-project/
│
├── controllers/
├── models/
├── routes/
├── middlewares/
├── validators/
├── utils/
├── db/
│
├── app.js
├── index.js
│
└── .env

⚙ Installation

Clone the repository

git clone https://github.com/yishaan8/backend-project.git

Move into the project

cd backend-project

Install dependencies

npm install

Create a .env file

PORT=5000

MONGODB_URI=your_mongodb_connection

ACCESS_TOKEN_SECRET=your_secret

REFRESH_TOKEN_SECRET=your_secret

CORS_ORIGIN=http://localhost:3000

Run the server

npm start

or

npm run dev

🔑 Authentication Flow

User Registration
        │
        ▼
Verification Email Sent
        │
        ▼
Email Verification
        │
        ▼
User Login
        │
        ▼
Access Token + Refresh Token
        │
        ▼
Protected APIs

📌 API Modules

Authentication

  • Register User
  • Login User
  • Verify Email
  • Refresh Tokens

Projects

  • Get All Projects
  • Get Project by ID
  • Create Project
  • Update Project
  • Delete Project

Members

  • Add Members
  • Get Members
  • Update Member Role
  • Remove Member

Tasks

  • CRUD Operations

Subtasks

  • CRUD Operations

Notes

  • CRUD Operations

🛡 Security Features

  • JWT Authentication
  • Refresh Token Support
  • Email Verification
  • Protected Routes
  • Role-Based Permissions
  • Request Validation

📈 Future Improvements

  • Docker Support
  • Swagger API Documentation
  • Unit & Integration Testing
  • Redis Caching
  • Rate Limiting
  • Logging with Winston
  • CI/CD Pipeline
  • File Upload Support
  • API Versioning

👨‍💻 Author

Ishaan Yadav

GitHub: https://github.com/yishaan8


⭐ Support

If you found this project useful, consider giving it a Star ⭐ on GitHub.

It helps others discover the project and motivates further development.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages