π Task Manager Pro - Full Stack Application
Task Manager Pro is a production-ready full-stack task management system built as a backend developer internship assignment. It demonstrates modern industry practices including JWT authentication, role-based access control (RBAC), and a scalable architecture. The application features a robust Node.js backend and a responsive React frontend.
π Authentication & Authorization
JWT-based authentication (7-day expiry)
Role-Based Access Control (User/Admin)
Password hashing using bcryptjs
Protected routes (frontend & backend)
Account activation/deactivation (Admin only)
User management (activate/deactivate users)
View all users with pagination
System dashboard with statistics
Manage all tasks across users
Full CRUD operations for tasks
Advanced filtering (status, priority, search)
Task statistics dashboard
Priority levels (Low, Medium, High)
Due date tracking with overdue indicators
π‘οΈ Security Features
Rate limiting (API/Auth/Task creation)
Helmet.js security headers with CSP
CORS protection with whitelist
Input validation & sanitization
MongoDB injection prevention
XSS protection
Global error handling middleware
Frontend
Backend
DevOps / Tools
React 18
Node.js
Docker
Vite
Express.js
Docker Compose
React Router v6
MongoDB
Winston Logging
Axios
Mongoose ODM
Swagger API Docs
react-hot-toast
JWT (jsonwebtoken)
Postman
date-fns
bcryptjs
CSS3
express-validator
React Frontend
β
βΌ
API Layer (Express)
β
βΌ
Middleware (Auth, Validation, Rate Limiting)
β
βΌ
Controllers (Auth / Task)
β
βΌ
MongoDB Database (Mongoose ODM)
Node.js >= 18
MongoDB 7.0
npm / yarn
Docker (optional)
git clone < https://github.com/lonekaiser04/Task-Manager-Pro>
cd task-manager-pro
cd backend
npm install
cp .env.example .env
npm run seed:admin
npm start
cd frontend
npm install
cp .env.example .env
npm run dev
backend/
βββ src/
β βββ config/
β βββ controllers/
β βββ middleware/
β βββ models/
β βββ routes/
β βββ utils/
βββ logs/
βββ .env.example
βββ package.json
βββ server.js
frontend/
βββ src/
β βββ components/
β βββ context/
β βββ pages/
β βββ services/
β βββ App.jsx
β βββ main.jsx
βββ .env.example
βββ package.json
Method
Endpoint
Access
Description
POST
/auth/register
Public
Register user
POST
/auth/login
Public
Login user
GET
/auth/me
Private
Get profile
PUT
/auth/me
Private
Update profile
POST
/auth/change-password
Private
Change password
GET
/auth/users
Admin
Get all users
GET
/tasks
Private
Get tasks
POST
/tasks
Private
Create task
GET
/tasks/:id
Private
Get task
PUT
/tasks/:id
Private
Update task
DELETE
/tasks/:id
Private
Delete task
GET
/tasks/admin/all
Admin
Get all tasks
npm run test:db
npm run test:api
Services:
MongoDB
Backend API
Frontend (Nginx)
βοΈ Environment Variables
Variable
Description
MONGO_URI
MongoDB connection string
JWT_SECRET
Secret key for JWT
PORT
Server port
NODE_ENV
Environment mode
Variable
Description
VITE_API_URL
Backend API URL
π Security Implementations
Feature
Implementation
Rate Limiting
express-rate-limit
Authentication
JWT
Password Security
bcryptjs hashing
Headers Security
Helmet.js
Validation
express-validator
Logging
Winston
β
Assignment Requirements Checklist
Requirement
Status
JWT Authentication
β
Password Hashing
β
Role-Based Access Control
β
CRUD Operations
β
API Versioning
β
Error Handling
β
API Documentation
β
MongoDB Schema
β
React Frontend
β
Input Sanitization
β
Scalable Structure
β
Docker Deployment
β
Scalability Documentation
β
Swagger UI: /api-docs
Postman Collection: Task-Manager-API.postman_collection.json
Scalability Doc: SCALABILITY.md
Login Page UI
Dashboard with Task Stats
Admin Panel
Task List & Filters
Swagger API Docs
Email notifications for tasks
Real-time updates with WebSockets
Mobile app (React Native)
Dark mode UI
File attachments in tasks
OAuth (Google/GitHub login)
Advanced analytics dashboard
Multi-language support
AI-based task suggestions
This project is licensed under the MIT License.
Internship Assignment Guidelines
Open Source Community
Node.js & React Ecosystem
β If you found this project useful, consider giving it a star!