A full-featured task management web application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) and Tailwind CSS. Users can register as User or Admin with role-based access control and comprehensive task management capabilities.
π Live Demo
π Source Code
- Project Overview
- Key Features
- Tech Stack
- Installation Guide
- Usage
- Folder Structure
- API Endpoints
- Security Features
- Screenshots
- Future Improvements
- Contributing
- License
- Author
The Task Management application supports two distinct user roles with different capabilities:
- Users can view assigned tasks and update their completion status
- Admins can create, assign, and manage tasks with priority levels and deadlines (requires 5-digit PIN for registration)
- π Authentication: Secure sign up, login, and logout functionality
- π Task View: View all personally assigned tasks
- π Status Updates: Mark tasks as
Pending,In Progress, orCompleted - π€ Profile Management: Update personal information and preferences
- π Task Management: Create, edit, and delete tasks
- π₯ Task Assignment: Assign tasks to specific users
- β° Priority & Deadlines: Set task priorities and due dates
- π Status Management: Update status for any task in the system
- π€ User Management: View all registered users and their task assignments
- π‘οΈ Secure Registration: Admin account creation requires a 5-digit PIN
| Category | Technology | Description |
|---|---|---|
| Frontend | React.js | User interface and component management |
| Styling | Tailwind CSS | Utility-first CSS framework |
| Routing | React Router | Client-side routing |
| Backend | Node.js, Express.js | Server-side runtime and web framework |
| Database | MongoDB | NoSQL database with Mongoose ODM |
| Authentication | JWT | JSON Web Token for secure authentication |
| Storage | localStorage, sessionStorage | Client-side data persistence |
| Security | bcryptjs | Password hashing and encryption |
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- Git
git clone https://github.com/Jitugandhare/Task-Management.git
cd Task-Managementcd backend
npm installCreate a .env file in the /backend directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
ADMIN_PIN=98935
NODE_ENV=developmentStart the backend server:
npm run devThe backend server will run on http://localhost:8000
cd frontend
npm install
npm startThe frontend application will run on http://localhost:5173
- Register with your email and password
- Login to access your task dashboard
- View assigned tasks with their priorities and deadlines
- Update task status as you progress
- Register using the 5-digit PIN (default: 98935)
- Login to access the admin dashboard
- Create new tasks and assign them to users
- Set priorities (Low, Medium, High) and deadlines
- Monitor and update task statuses across the system
Task-Management/
βββ backend/
β βββ controllers/
β β βββ authController.js
β β βββ taskController.js
β β βββ userController.js
β βββ middleware/
β β βββ auth.js
β β βββ adminAuth.js
β βββ models/
β β βββ User.js
β β βββ Task.js
β βββ routes/
β β βββ auth.js
β β βββ tasks.js
β β βββ users.js
β βββ config/
β β βββ database.js
β βββ .env
β βββ server.js
βββ frontend/
β βββ public/
β βββ src/
β β βββ components/
β β β βββ Header.js
β β β βββ TaskCard.js
β β β βββ UserList.js
β β βββ pages/
β β β βββ Login.js
β β β βββ Register.js
β β β βββ Dashboard.js
β β β βββ AdminPanel.js
β β βββ services/
β β β βββ api.js
β β βββ utils/
β β β βββ auth.js
β β βββ App.js
β β βββ index.js
β βββ package.json
βββ README.md
βββ package.json
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/tasks- Get user's tasksPOST /api/tasks- Create new task (Admin only)PUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete task (Admin only)
GET /api/users- Get all usersGET /api/users/:id- Get specific user
- Password Encryption: All passwords are hashed using bcryptjs
- JWT Authentication: Secure token-based authentication system
- Role-Based Access Control: Separate permissions for Users and Admins
- Admin PIN Verification: Additional security layer for admin registration
- Input Validation: Server-side validation for all user inputs
- CORS Protection: Cross-Origin Resource Sharing configuration
Secure login interface for both users and admins
Comprehensive task management interface
- Notifications: Real-time task reminders and deadline alerts
- Advanced Filtering: Filter tasks by priority, deadline, or status
- Search Functionality: Search tasks by title or description
- Task Comments: Add comments and collaboration features
- File Attachments: Support for task-related file uploads
- Calendar Integration: Visual calendar view for task deadlines
- Email Notifications: Automated email alerts for task updates
- Task Categories: Organize tasks into different categories
- Progress Tracking: Visual progress indicators and analytics
- Mobile App: React Native mobile application
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow ESLint configuration
- Write clear commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Jitu Gandhare
- GitHub: @Jitugandhare
- Email: jitugandhare@gmail.com
If you found this project helpful, please give it a β on GitHub!
Made with β€οΈ and lots of β by Jitu Gandhare