A comprehensive full-stack web application for managing tasks and teams with role-based access control, built with React and Node.js.
- Dashboard Analytics: Visual insights with charts and statistics
- Task Management: Create, update, delete, and assign tasks
- User Management: Manage team members and their roles
- Reporting: Generate Excel reports for tasks and analytics
- Personal Dashboard: Overview of assigned tasks and progress
- My Tasks: View and manage assigned tasks
- Task Details: Detailed view of task information with attachments
- Profile Management: Update profile and avatar
- Authentication: Secure login/signup with JWT tokens
- File Uploads: Support for task attachments and profile images
- Real-time Updates: Dynamic status updates and notifications
- Responsive Design: Works seamlessly on desktop and mobile
- Role-based Access: Admin and member role distinctions
- React 19 - Modern UI library
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- React Router DOM - Client-side routing
- Axios - HTTP client for API calls
- Recharts - Data visualization charts
- React Hot Toast - Notification system
- React Icons - Icon library
- Moment.js - Date manipulation
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Token authentication
- Bcrypt.js - Password hashing
- Multer - File upload handling
- ExcelJS - Excel file generation
- CORS - Cross-origin resource sharing
TaskManagementSystem/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ Cards/ # Card components
β β β βββ Charts/ # Chart components
β β β βββ Inputs/ # Form input components
β β β βββ layouts/ # Layout components
β β βββ context/ # React context providers
β β βββ hooks/ # Custom React hooks
β β βββ pages/ # Page components
β β β βββ Admin/ # Admin-specific pages
β β β βββ Auth/ # Authentication pages
β β β βββ User/ # User-specific pages
β β βββ routes/ # Route protection
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
βββ server/ # Backend Node.js application
βββ config/ # Database configuration
βββ controllers/ # Request handlers
βββ middlewares/ # Custom middleware
βββ models/ # Database models
βββ routes/ # API route definitions
βββ uploads/ # File upload storage
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/AmulyaJain2004/TaskManagementSystem.git cd TaskManagementSystem -
Install Backend Dependencies
cd server npm install -
Install Frontend Dependencies
cd ../client npm install -
Environment Setup
Create a
.envfile in theserverdirectory:MONGODB_URI=mongodb://localhost:27017/taskmanagement JWT_SECRET=your_jwt_secret_key PORT=5000
-
Start the Development Servers
Backend (from server directory):
npm run dev
Frontend (from client directory):
npm run dev
-
Access the Application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
POST /api/auth/register- User registrationPOST /api/auth/login- User login
GET /api/users- Get all users (Admin only)GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profile
GET /api/tasks- Get all tasksPOST /api/tasks- Create new task (Admin only)PUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete task (Admin only)GET /api/tasks/user/:userId- Get user-specific tasks
GET /api/reports/excel- Generate Excel report (Admin only)
The application implements JWT-based authentication with role-based access control:
- Public Routes: Login, Signup
- Protected Routes: All dashboard and task-related pages
- Admin-only Features: User management, task creation/deletion, reports
- User Features: View assigned tasks, update task status
- Modern Design: Clean and intuitive interface with Tailwind CSS
- Responsive Layout: Optimized for desktop and mobile devices
- Interactive Charts: Visual analytics using Recharts
- File Upload: Drag-and-drop file upload with preview
- Progress Indicators: Visual task progress tracking
- Toast Notifications: Real-time feedback for user actions
User Model:
- Name, email, password
- Profile image URL
- Role (admin/member)
- Timestamps
Task Model:
- Title, description, priority
- Status (Pending/In Progress/Completed)
- Due date, assigned users
- Attachments, todo items
- Creator and timestamps
The frontend is configured for Vercel deployment with proper CORS settings.
Set up environment variables and deploy to your preferred platform (Heroku, Railway, etc.).
- 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
Amulya Jain - GitHub
For support, create an issue in the GitHub repository.
Built with β€οΈ using React and Node.js