A full-stack task management system built with NestJS (backend) and React + TypeScript (frontend).
It supports task tracking, subtasks, employees, drag-and-drop workflow, inline editing, and a timeline view.
- Create, update, and delete tasks
- Assign tasks to employees
- Set priority levels: LOW / MEDIUM / HIGH
- Set start and due dates
- Task status workflow:
- TODO
- IN_PROGRESS
- DONE
- Add multiple subtasks per task
- Toggle completion inline
- Create, update, and delete subtasks
- Real-time UI updates without page refresh
- Create employees
- Assign tasks to employees
- Filter tasks by employee
- Move tasks between columns:
- TODO
- IN_PROGRESS
- DONE
- Automatically syncs with backend
- Tasks sorted by due date
- Overdue task highlighting
- Status color indicators
- Priority badges
- Click task to open edit modal
- Edit tasks via modal
- Update:
- title
- description
- priority
- due date
- subtasks
- Instant UI refresh across all views
- React
- TypeScript
- Tailwind CSS
- NestJS
- Prisma ORM
- SQLite (development database)
- id
- firstName
- lastName
- role
- department
- tasks (relation)
- assignedSubtasks (relation)
- id
- title
- description
- status
- priority
- startDate
- dueDate
- createdAt
- employeeId
- subtasks
- id
- title
- completed
- startDate
- endDate
- taskId
- assigneeId
- GET
/tasks?employeeId= - POST
/tasks - PATCH
/tasks/:id - DELETE
/tasks/:id - PATCH
/tasks/:taskId/subtasks/:subtaskId - PATCH
/tasks/:id/status
- GET
/employees - POST
/employees
- Subtasks are relational in Prisma
- Update logic supports:
- updating existing subtasks
- adding new subtasks
- deleting removed subtasks
- Uses transactional updates in backend
- Ensures task + subtasks stay consistent
cd backend
npm install
npx prisma generate
npx prisma migrate dev
npm run start:dev🌐 App runs at: http://localhost:3000/
cd frontend
npm install
npm run dev🌐 App runs at: http://localhost:5173/
This is the easiest way to run the entire project.
From the project root:
docker compose up --build