A full-stack task management application built with React and Node.js, featuring role-based access control for administrators and team members.
- User Authentication & Authorization - Secure login system with JWT tokens
- Role-Based Access Control - Separate dashboards for admins and team members
- Project Management - Create, update, and manage projects
- Task Management - Assign, track, and update task status
- Team Management - Organize users into teams
- Real-time Updates - Dynamic dashboard with live data
- Admin Dashboard - Comprehensive overview with analytics
- Project Management - Full CRUD operations for projects
- Task Assignment - Assign tasks to team members
- Team Administration - Manage team structures and members
- User Management - Oversee user accounts and permissions
- Member Dashboard - Personalized task overview
- My Tasks - View and update assigned tasks
- Task Status Updates - Mark tasks as completed or in progress
- React 19 - Modern React with hooks and functional components
- Vite - Fast build tool and development server
- Material-UI (MUI) - Beautiful and responsive UI components
- React Router DOM - Client-side routing
- Axios - HTTP client for API communication
- Chart.js - Data visualization and analytics
- Framer Motion - Smooth animations and transitions
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcryptjs - Password hashing
- CORS - Cross-origin resource sharing
TaskTracker/
βββ backend/
β βββ controllers/ # Business logic
β β βββ projectController.js
β β βββ taskController.js
β β βββ teamController.js
β β βββ userController.js
β βββ models/ # Database schemas
β β βββ projectModel.js
β β βββ taskModel.js
β β βββ teamModel.js
β β βββ userModel.js
β βββ routes/ # API endpoints
β β βββ projects.js
β β βββ tasks.js
β β βββ teams.js
β β βββ users.js
β βββ server.js # Express server setup
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ admin/ # Admin-specific components
β β β β βββ AdmDash.jsx
β β β β βββ AdmDashLayout.jsx
β β β β βββ Project.jsx
β β β β βββ Task.jsx
β β β β βββ Team.jsx
β β β βββ member/ # Member-specific components
β β β β βββ MemDash.jsx
β β β β βββ MemDashLayout.jsx
β β β β βββ MyTasks.jsx
β β β βββ Front.jsx
β β β βββ Login.jsx
β β βββ App.jsx
β β βββ main.jsx
β βββ index.html
β βββ package.json
βββ README.md
- Node.js (v16 or higher)
- MongoDB (local installation or MongoDB Atlas)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd TaskTracker
-
Backend Setup
cd backend npm install -
Environment Configuration Create a
.envfile in the backend directory:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key PORT=4000
-
Frontend Setup
cd ../frontend npm install
-
Start the Backend Server
cd backend npm start # or with nodemon for development npx nodemon server.js
-
Start the Frontend Development Server
cd frontend npm run dev -
Access the Application
- Frontend: http://localhost:5173
- Backend API: http://localhost:4000
POST /api/users/login- User loginPOST /api/users/register- User registration
GET /api/projects- Get all projectsPOST /api/projects- Create new projectPUT /api/projects/:id- Update projectDELETE /api/projects/:id- Delete project
GET /api/tasks- Get all tasksPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete task
GET /api/teams- Get all teamsPOST /api/teams- Create new teamPUT /api/teams/:id- Update teamDELETE /api/teams/:id- Delete team
GET /api/users- Get all usersPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
Backend:
npm start- Start the servernpm test- Run tests (placeholder)
Frontend:
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production build
- ESLint configuration for consistent code formatting
- React hooks and functional components
- Modular component architecture
- Responsive Design - Works on desktop, tablet, and mobile
- Material Design - Clean and modern interface
- Dark/Light Theme - Customizable appearance
- Smooth Animations - Enhanced user experience
- Data Visualization - Charts and analytics for insights
- JWT Authentication - Secure token-based authentication
- Password Hashing - bcryptjs for password security
- CORS Protection - Cross-origin request handling
- Input Validation - Server-side data validation
- Role-Based Access - Protected routes and features
The application uses MongoDB with the following main collections:
- Users - User accounts and authentication
- Projects - Project information and metadata
- Tasks - Task details, assignments, and status
- Teams - Team structures and member associations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License.
For support and questions, please open an issue in the repository or contact the development team.
Built with β€οΈ using React, Node.js, and MongoDB