A full-stack task management application built with the MERN stack (MongoDB, Express, React, Node.js). This application facilitates task tracking, user management, and administrative oversight with real-time updates and interactive dashboards.
- Framework: React (Vite)
- Language: TypeScript
- State Management: Redux Toolkit
- Styling: Tailwind CSS
- UI Components: Lucide React (Icons), Recharts (Charts)
- HTTP Client: Axios
- Real-time: Socket.io Client
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose ODM)
- Authentication: JWT (JSON Web Tokens)
- Validation: Zod
- Real-time: Socket.io
- Secure Login and Registration system.
- JWT-based authentication with session management.
- Protected routes for standard Users and Admins.
- Overview: Interactive dashboard with visual analytics and charts.
- Task Management: Full CRUD capabilities for task creation, assignment, and tracking.
- User Management: Monitor and manage registered users and their roles.
- Personalized dashboard for users to view assigned tasks.
- Status tracking and updates.
- Instant updates for task assignments and status changes using Socket.io.
- Node.js (v14+ recommended)
- MongoDB (Local or Atlas)
git clone <repository-url>
cd TaskManagementNavigate to the backend directory and install dependencies:
cd backend
npm installCreate a .env file in the backend directory with the following variables:
PORT=3000
MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>
ORIGIN=http://localhost:5173
JWT_SECRET=your_super_secret_key
JWT_EXPIRES_IN=6hStart the backend server:
npm run devNavigate to the frontend directory and install dependencies:
cd ../frontend
npm installCreate a .env file in the frontend directory:
VITE_API_BASE_URL=http://localhost:3000/apiStart the frontend development server:
npm run devTaskManagement/
├── backend/ # Express.js API Server
│ ├── src/
│ │ ├── controllers/
│ │ ├── models/
│ │ ├── routes/
│ │ └── services/
├── frontend/ # React Client Application
│ ├── src/
│ │ ├── features/ # Feature-based architecture (Admin, Auth, User)
│ │ ├── components/ # Reusable UI components
│ │ └── hooks/ # Custom React hooks
- Fork the project
- Create your 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