LIVE LINK - https://taskflow.rambhardwaj.in
TaskFlow is a TypeScript-powered backend built with Express.js and MongoDB, designed to handle robust project management workflows. It features JWT-based authentication, role-based access control, rate-limited API endpoints, and supports file uploads using Cloudinary.
This backend serves as the core engine for managing users, projects, tasks, subtasks, and file attachments in a scalable and modular fashion. With clear separation of concerns, reusable middlewares, and Zod validation, TS-MEGA is ideal for enterprise-grade applications and modern full-stack projects.
Whether you're building a productivity tool, a task manager, or an internal collaboration platform, TS-MEGA gives you the foundational backend structure to move fast and build with confidence.
- Node.js (v18+ recommended)
- MongoDB
- Cloudinary credentials (for image upload)
- Email SMTP config (for mail services)
/BE │── logs/ # Winston log files (error.log, combined.log) │── public/ │ └── uploads/ # Temporary storage for uploaded files (via Multer) │── src/ │ ├── controllers/ # Request handlers and business logic │ ├── middleware/ # Express middleware (auth, error handler, etc.) | ├── models/ # Mongoose models (Project, User, Notes, etc.) │ ├── routes/ # API routes │ ├── utils/ # Utility functions (CustomError, permissions) | ├── validators/ # Zod schemas and validation logic | ├── config/ # Configs for DB, cloudinary, logger, etc. │ ├── types.d.ts # Global/custom TypeScript declarations │ ├── app.ts # Express app setup (middlewares, routes) │ ├── index.ts # Entry point — starts server and connects to DB ├── .env.example # Sample environment configuration ├── .gitignore # Files and folders to exclude from Git ├── package.json # Project dependencies and metadata ├── package-lock.json # Lockfile for dependency versions ├── tsconfig.json # TypeScript configuration └── README.md # Project overview and documentation
Pull requests are welcome! Feel free to fork the repo and submit a PR.
This project is open-source and available under the ISC License.
TaskFlow is a TypeScript-based project and task management system built with Node.js, Express, and MongoDB. It features a clean, modular architecture with role-based access control, project collaboration, team notes, and structured logging using Winston.
- Project Management (Create, update, delete projects)
- Task & Subtask Management
- Team Collaboration
- Role-Based Access Control (Owner, Project Manager, Member)
- Zod Validation
- Centralized Error Handling
- Mongoose Aggregation Pipelines
- Winston Logging Integration
- Rate Limiting for Sensitive Endpoints (e.g., password reset, email verification)
- Language: TypeScript
- Runtime: Node.js
- Framework: Express
- Database: MongoDB (via Mongoose)
- Validation: Zod
- Authentication: JWT-based
- File Uploads: Multer + Cloudinary
- Mailing: Nodemailer + Mailgen
- Logging: Winston
- Security: express-rate-limit for API throttling
-
Clone the repository: git clone https://github.com/rambhardwajj/TaskFlow cd project-nest
-
Install dependencies: npm install
-
Copy .env file: cp .env.example .env
-
Start the server: npm start
Forget Email button disable update password conditional render rate limiter forget password create project desc Project Name must be 5 character subtask should be deleted when a task is deleted from BE also Fallback route