A task management application built with Express.js, MongoDB, React, Redux Toolkit, and Material UI.
- Express.js 5
- MongoDB with Mongoose 9
- TypeScript
- React 19
- Redux Toolkit with RTK Query
- Material UI 7
- Vite
- Node.js 20+
- Docker and Docker Compose (for MongoDB)
npm run install:allStart MongoDB using Docker Compose:
docker-compose up -dThis will start MongoDB on port 27017 with persistent data storage.
npm run devThis will start:
- Backend server on http://localhost:5000
- Frontend dev server on http://localhost:5173
todAI/
├── client/ # React frontend
│ ├── src/
│ │ ├── app/ # Redux store configuration
│ │ ├── features/# Feature-based modules (tasks)
│ │ ├── theme/ # MUI theme configuration
│ │ └── types/ # TypeScript types
│ └── ...
├── server/ # Express backend
│ ├── src/
│ │ ├── config/ # Database configuration
│ │ ├── controllers/
│ │ ├── models/ # Mongoose models
│ │ └── routes/ # API routes
│ └── ...
└── package.json # Root package with monorepo scripts
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks | Get all tasks |
| GET | /api/tasks/:id | Get task by ID |
| POST | /api/tasks | Create a new task |
| PUT | /api/tasks/:id | Update a task |
| DELETE | /api/tasks/:id | Delete a task |
{
id: string;
title: string;
description: string;
status: "todo" | "in-progress" | "done";
}