A complete, production-ready Task Manager SaaS application with modern UI, real-time features, and scalable architecture.
- β Authentication - JWT + Refresh Tokens, Email OTP Verification
- π Dashboard - Analytics, Charts, Activity Feed
- βοΈ Task Management - CRUD, Kanban, Calendar, Gantt, Time Tracking
- π Projects - Team Collaboration, Progress Tracking
- π¬ Real-time Chat - WebSocket-powered messaging
- π Notifications - Real-time alerts, Email reminders
- π File Manager - Upload, Download, Preview
- π€ Profile Management - Avatar, Settings, Theme
- π‘οΈ Admin Panel - RBAC, User Management, Analytics
- π¨ Modern UI - Tailwind CSS, Framer Motion animations
- π Dark/Light Theme - Toggle between themes
- π€ AI Task Suggestions
- β±οΈ Pomodoro Timer
- π Productivity Scoring
- π Activity Logs
- π± PWA Support
- π Micro-animations
- π Loading Skeletons
- React 18 (Vite)
- Tailwind CSS
- Framer Motion
- Lucide React Icons
- Recharts
- Socket.io-client
- Axios
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- Socket.io
- Nodemailer
- Multer
- Bcrypt
- Node.js (v18 or higher)
- MongoDB (local or Atlas)
- npm or yarn
-
Clone the repository
cd Task_Manager -
Install all dependencies
npm run install-all
-
Configure environment variables
Create
backend/.env:PORT=5000 MONGODB_URI=mongodb://localhost:27017/taskmanager JWT_SECRET=your_super_secret_jwt_key_change_this JWT_REFRESH_SECRET=your_super_secret_refresh_key_change_this JWT_EXPIRES_IN=15m JWT_REFRESH_EXPIRES_IN=7d # Email Configuration (Gmail example) EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_USER=your-email@gmail.com EMAIL_PASSWORD=your-app-specific-password EMAIL_FROM=TaskManager <noreply@taskmanager.com> # Frontend URL FRONTEND_URL=http://localhost:5173 # File Upload MAX_FILE_SIZE=10485760 UPLOAD_PATH=./uploads # Node Environment NODE_ENV=development
Create
frontend/.env:VITE_API_URL=http://localhost:5000/api VITE_SOCKET_URL=http://localhost:5000
-
Start the application
npm run dev
This starts both frontend (http://localhost:5173) and backend (http://localhost:5000)
Task_Manager/
βββ backend/
β βββ config/ # Database, email config
β βββ controllers/ # Request handlers
β βββ middleware/ # Auth, RBAC, error handling
β βββ models/ # Mongoose schemas
β βββ routes/ # API routes
β βββ services/ # Business logic
β βββ utils/ # Helper functions
β βββ uploads/ # File storage
β βββ server.js # Entry point
β
βββ frontend/
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ services/ # API calls
β β βββ utils/ # Helpers
β β βββ hooks/ # Custom hooks
β β βββ context/ # React Context
β β βββ App.jsx # Root component
β βββ public/ # Static assets
β
βββ package.json # Root package file
- Admin - Full system access
- Manager - Team and project management
- User - Standard access
Admin:
Email: admin@taskmanager.com
Password: Admin@123
Manager:
Email: manager@taskmanager.com
Password: Manager@123
User:
Email: user@taskmanager.com
Password: User@123
Base URL: http://localhost:5000/api
POST /auth/register- Register new userPOST /auth/login- LoginPOST /auth/verify-otp- Verify email OTPPOST /auth/forgot-password- Request password resetPOST /auth/reset-password- Reset passwordPOST /auth/refresh-token- Refresh access token
GET /tasks- Get all tasksPOST /tasks- Create taskGET /tasks/:id- Get task by IDPUT /tasks/:id- Update taskDELETE /tasks/:id- Delete task
GET /projects- Get all projectsPOST /projects- Create projectGET /projects/:id- Get project detailsPUT /projects/:id- Update projectDELETE /projects/:id- Delete project
[More endpoints in API documentation...]
- Button, Input, Select, Textarea
- Modal, Drawer, Dialog
- Toast notifications
- Loading skeletons
- Charts (Bar, Line, Pie, Area)
- Kanban board
- Calendar view
- Gantt chart
- File uploader
- Avatar
- Badge, Card, Tabs
join_room- Join task/project roomsend_message- Send chat messagetyping- Typing indicatortask_update- Broadcast task update
message- New message receivednotification- New notificationuser_status- User online/offlinetask_updated- Task was updated
# Run backend tests
cd backend
npm test
# Run frontend tests
cd frontend
npm testThis application is PRODUCTION-READY with configurations for:
- β Frontend: Vercel (React + Vite)
- β Backend: Railway/Render (Node.js + Express + WebSocket)
- β Database: MongoDB Atlas (Cloud)
Option 1: Automated Deployment
# Frontend to Vercel
cd frontend
npm install
vercel --prod
# Backend to Railway
cd backend
npm install
railway login
railway init
railway upOption 2: Manual Configuration See π DEPLOYMENT.md for complete step-by-step guide including:
- Environment variable setup
- Security best practices
- Testing procedures
- Troubleshooting guide
- Update JWT secrets (use
openssl rand -base64 32) - Configure production MongoDB URI
- Set up email credentials (Gmail App Password)
- Update CORS origins
- Test builds locally
- Review FIXES.md for known issues
See DEPLOY-SCRIPTS.md for:
- Quick deploy commands
- Health check scripts
- Rollback procedures
- CI/CD configuration
Critical production environment variables:
MONGODB_URI- Production databaseJWT_SECRET- Secure token secretFRONTEND_URL- Your Vercel URLEMAIL_PASSWORD- App-specific password
See .env.example files in frontend/ and backend/ directories.
MIT License - feel free to use this project for learning or commercial purposes.
Contributions are welcome! Please feel free to submit a Pull Request.
For issues or questions, please open an issue on GitHub.
Built with β€οΈ using React, Node.js, and MongoDB