A full-stack Task Manager application built with FastAPI, PostgreSQL, and Next.js (TypeScript).
- Backend: Python, FastAPI, SQLAlchemy, PostgreSQL
- Frontend: Next.js 16, TypeScript, Tailwind CSS
- Scripts: Node.js, TypeScript, ts-node
task-manager/ ├── backend/ # FastAPI backend ├── frontend/ # Next.js frontend ├── scripts/ # Node.js seed/export scripts └── README.md
- Python 3.10+
- Node.js 18+
- PostgreSQL 18
psql -U postgres
CREATE DATABASE taskmanager;
\qcd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txtCreate a .env file in the backend/ folder:
DATABASE_URL=postgresql://postgres:yourpassword@localhost:5432/taskmanagerStart the backend:
uvicorn main:app --reloadBackend runs at: http://127.0.0.1:8000
API docs at: http://127.0.0.1:8000/docs
cd frontend
npm install
npm run devFrontend runs at: http://localhost:3000
cd scripts
npm installSeed sample tasks:
npm run seedExport tasks to JSON:
npm run export-tasks| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks | Get all tasks |
| GET | /api/tasks/{id} | Get a single task |
| POST | /api/tasks | Create a task |
| PUT | /api/tasks/{id} | Update a task |
| DELETE | /api/tasks/{id} | Delete a task |
- Full CRUD for tasks
- Filter tasks by status and priority
- Search tasks by title or description
- Input validation with Pydantic
- Responsive UI with Tailwind CSS
- Seed script to populate sample data
- Export script to save tasks as JSON
- Q1 — REST API with full CRUD
- Q2 — PostgreSQL database with SQLAlchemy
- Q3 — Input validation with Pydantic
- Q4 — Task list page
- Q5 — Create task form
- Q6 — Edit task form
- Q7 — Delete task
- Q8 — Search functionality
- Q9 — Filter by status and priority
- Q10 — Seed and export scripts
- Q11 —8 passing tests (pytest)
cd backend
venv\Scripts\activate
python -m pytest app/tests/test_tasks.py -vTests cover:
- Create task
- Get all tasks
- Get single task
- Get task not found (404)
- Update task
- Delete task
- Invalid status validation
- Invalid date validation
A separate standalone Python API that accepts a list of tasks and returns a summary report.
cd task-summary-api
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txtuvicorn main:app --reload --port 8001Runs at: http://127.0.0.1:8001
Docs at: http://127.0.0.1:8001/docs
POST /api/task-summary
Accepts a list of tasks and returns:
- Total tasks count
- Completed tasks count
- Pending tasks count
- High priority tasks count
- Tasks grouped by status
- Tasks grouped by priority
TypeScript is used throughout the frontend and scripts AI tools were used to assist development the development I have used claude and chatgpt