Skip to content

πŸš€ Scalable Trello-style backend built with Node.js, Express, MongoDB, and Socket.io. Supports JWT authentication, real-time collaboration, notifications, and activity tracking β€” production-deployed on Render.

Notifications You must be signed in to change notification settings

Bhupesh-aher/TaskForge-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧩 TaskForge – Trello-Style Project Management Backend

πŸš€ TaskForge β€” A Trello-style collaborative task management app with real-time updates, drag-and-drop lists, and persistent cards.
🌐 Live Frontend | πŸ“˜ Backend Swagger Docs

Live Backend: https://taskforge-backend-jjdh.onrender.com
Swagger API Docs: https://taskforge-backend-jjdh.onrender.com/api/docs

TaskForge is a production-ready Trello-style backend built using the MERN stack architecture.
It powers the frontend app by providing APIs for managing boards, lists, cards, members, notifications, and real-time collaboration, all secured with JWT authentication and Socket.io for live updates.


πŸ—οΈ Tech Stack

Layer Technology
Backend Framework Node.js, Express.js
Database MongoDB (Mongoose ODM)
Authentication JWT (JSON Web Tokens)
Real-Time Communication Socket.io
File Storage Cloudinary
Documentation Swagger UI
Security bcrypt.js, Helmet, CORS
Other Tools Nodemon, dotenv, ESLint

βš™οΈ Core Features

βœ… Board Management – Create, edit, and share boards with team members
βœ… List & Card System – Add lists and drag-and-drop cards within boards
βœ… User Authentication – JWT-secured login and registration
βœ… Real-Time Updates – Sync changes instantly via Socket.io
βœ… Activity Logs – Track card creation, updates, and deletions
βœ… Notifications System – Real-time board and card updates
βœ… File Uploads – Cloudinary-based attachment handling
βœ… Pagination & Search – Optimized endpoints with query filters
βœ… Dynamic CORS – Auto-switch between dev and prod environments
βœ… Modular Structure – Cleanly organized controllers, routes & middleware


🧱 Project Architecture


src/
┣ controllers/     β†’ Route logic (auth, boards, lists, cards, etc.)
┣ models/          β†’ MongoDB schemas (User, Board, Card, etc.)
┣ routes/          β†’ Express routes grouped by feature
┣ middleware/      β†’ JWT protection, error handling
┣ utils/           β†’ Helpers (Cloudinary, pagination)
┣ config/          β†’ Swagger config, DB connection
┣ app.js           β†’ Core express configuration (CORS, routes)
β”— server.js        β†’ Socket.io setup and server startup


πŸ“‘ API Overview

πŸ” Auth Routes

Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login Login user and return JWT

🧩 Board Routes

Method Endpoint Description
GET /api/boards Fetch all boards
POST /api/boards Create new board
GET /api/boards/:id Fetch board with lists and cards
PUT /api/boards/:id/members Add member to board

πŸ—‚οΈ List Routes

Method Endpoint Description
POST /api/lists Create new list
PUT /api/lists/:id Update list title/order
DELETE /api/lists/:id Delete list

πŸ—ƒοΈ Card Routes

Method Endpoint Description
POST /api/cards Create new card
PUT /api/cards/:id Update card details
PATCH /api/cards/:id/move Move card between lists
DELETE /api/cards/:id Delete card
PUT /api/cards/:id/attachments Update/remove attachments

πŸ”” Notification Routes

Method Endpoint Description
GET /api/notifications Fetch all notifications
PUT /api/notifications/:id/read Mark as read

πŸ•’ Activity Routes

Method Endpoint Description
GET /api/activities/:boardId Fetch board activity logs

βš™οΈ Setup & Installation

1️⃣ Clone Repository

git clone https://github.com/Bhupesh-aher/TaskForge-Backend.git
cd TaskForge-Backend

2️⃣ Install Dependencies

npm install

3️⃣ Configure Environment Variables

Create a .env file in the project root:

# Environment
NODE_ENV=development
PORT=5000

# Database
MONGO_URI_DEV=your-local-mongo-uri
MONGO_URI_PROD=your-production-mongo-uri

# JWT Secret
JWT_SECRET=your-jwt-secret

# Cloudinary
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

# Client URLs
CLIENT_URL_DEV=http://localhost:5173
CLIENT_URL_PROD=https://task-forge-frontend.vercel.app

4️⃣ Run the App

Development Mode

npm run dev

Runs with NODE_ENV=development, connecting to local DB & frontend.

Production (Render)

Render automatically sets:

NODE_ENV=production

Connects to hosted DB and live frontend.


☁️ Deployment

Service Description
Backend Hosting Render
Frontend Hosting Vercel
Database MongoDB Atlas
Media Storage Cloudinary

πŸ“˜ Swagger API Docs

Access all endpoints directly at: πŸ‘‰ https://taskforge-backend-jjdh.onrender.com/api/docs


🧠 Developer Notes

  • Dynamic environment switching via NODE_ENV
  • CORS configured for both local and production
  • Socket.io integrated for real-time updates
  • Modular structure for easy scaling

🏷️ License

MIT License Β© 2025 [Bhupesh Aher]

About

πŸš€ Scalable Trello-style backend built with Node.js, Express, MongoDB, and Socket.io. Supports JWT authentication, real-time collaboration, notifications, and activity tracking β€” production-deployed on Render.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published