A full-stack task management application inspired by GitHub's contribution graph. The project consists of a NestJS backend API and a Next.js/React frontend, allowing users to manage tasks, track completion, and visualize productivity.
- Task Management: Create, update, delete, and view tasks with priorities, due dates, and categories.
- Contribution Graph: Visualize completed tasks in a GitHub-style contribution graph.
- Statistics: View daily and overall task completion stats.
- Modern UI: Responsive, accessible, and themeable interface using Tailwind CSS and Radix UI.
├── backend/ # NestJS API server
├── frontend/ # Next.js React client
- Framework: NestJS (TypeScript)
- API: RESTful endpoints for managing tasks
- In-memory storage (for demo; replace with DB for production)
- Port:
4000
(default)
cd backend
npm install
npm run start:dev
GET /api/tasks
— List all tasksGET /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
- Framework: Next.js (React 19, TypeScript)
- State: Redux Toolkit
- Styling: Tailwind CSS, Radix UI
- Features: Dashboard, task list, contribution graph, statistics
- Port:
3000
(default)
cd frontend
npm install
npm run dev
The frontend expects the backend API to be running at http://localhost:4000
.
- Start the backend:
cd backend npm install npm run start:dev
- Start the frontend:
cd frontend npm install npm run dev
- Open your browser: Visit http://localhost:3000 to use the app.
- Backend:
- Replace in-memory storage with a database for persistence.
- See NestJS deployment docs for production tips.
- Frontend:
- Configure API base URL in
frontend/lib/api.ts
if deploying separately. - See Next.js deployment docs for production.
- Configure API base URL in
This project is for educational/demo purposes. See individual folders for more details.