A collaborative task management platform for teams to streamline projects, organize workflows, and track progress with real-time filtering and pagination capabilities. Built with React, Express.js, TypeScript, and MongoDB.
- Team Management: Create, read, update, and delete team members
- Project Management: Create, read, update, and delete projects with assigned team members
- Task Management: Create, read, update, and delete tasks with assigned team members, projects, deadlines, and statuses
- Filtering and Pagination: Filter tasks by project, team member, status, search term, and date range
- Validation and Error Handling: Server-side validation using Zod and comprehensive error handling
- Type Safety: Fully typed application using TypeScript for both frontend and backend
- Node.js
- Express.js
- TypeScript
- MongoDB with Mongoose
- Zod for validation
- CORS for cross-origin resource sharing
- React
- TypeScript
- React Router for navigation
- Axios for API requests
/
├── backend/ # Express.js backend
│ ├── src/ # Source code
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # API controllers
│ │ ├── middleware/ # Custom middleware
│ │ ├── models/ # Mongoose models
│ │ ├── routes/ # API routes
│ │ ├── utils/ # Utility functions
│ │ └── index.js # Entry point
│ └── package.json # Dependencies and scripts
│
└── frontend/ # React.js frontend
├── public/ # Static files
├── src/ # Source code
│ ├── components/ # React components
│ │ ├── common/ # Common components
│ │ ├── auth/ # Authentication components
│ │ ├── teams/ # Team-related components
│ │ ├── projects/ # Project-related components
│ │ └── tasks/ # Task-related components
│ ├── context/ # React context
│ ├── App.js # Main App component
│ └── index.js # Entry point
└── package.json # Dependencies and scripts
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install -
Create a
.envfile with the following values:PORT=5000 MONGODB_URI=mongodb://localhost:27017/task-management NODE_ENV=development JWT_SECRET=your_secret_key -
Start the server:
npm startOr for development with auto-reload:
npm run dev
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install -
Start the development server:
npm start -
The application will be accessible at
http://localhost:3000
GET /api/teams- Get all team members with paginationGET /api/teams/:id- Get a single team memberPOST /api/teams- Create a new team memberPUT /api/teams/:id- Update a team memberDELETE /api/teams/:id- Delete a team member
GET /api/projects- Get all projects with paginationGET /api/projects/:id- Get a single projectPOST /api/projects- Create a new projectPUT /api/projects/:id- Update a projectDELETE /api/projects/:id- Delete a project
GET /api/tasks- Get all tasks with filtering and paginationGET /api/tasks/:id- Get a single taskPOST /api/tasks- Create a new taskPUT /api/tasks/:id- Update a taskDELETE /api/tasks/:id- Delete a task
This project is licensed under the MIT License.
- JWT Authentication
!
Profile