All work
Case study · Personal project
Task Management API
REST API · personal project
A REST API in Python and FastAPI for managing users and tasks — full CRUD, input validation and structured error handling on a SQLite schema.
- Type
- Personal project
- Role
- Solo
- Focus
- API design, data modeling
terminal · task api
Illustrative$ curl -X POST localhost:8000/tasks \
-H "Content-Type: application/json" \
-d '{"title": "Write endpoint tests", "user_id": 1}'
HTTP/1.1 201 Created
{
"id": 12,
"title": "Write endpoint tests",
"user_id": 1,
"completed": false
}
$ curl localhost:8000/tasks/999
HTTP/1.1 404 Not Found
{ "detail": "Task 999 not found" }
$ curl -X POST localhost:8000/tasks -d '{"user_id": 1}'
HTTP/1.1 422 Unprocessable Entity
{ "detail": "title: field required" }The problem
Most web apps sit on a backend like this one. The goal was to build a clean, extensible REST service end to end: data model, validation, error handling and testing.
What I built
Full CRUD for users and tasks
Create, read, update and delete endpoints with input validation and structured, consistent error responses.
Relational schema
A SQLite schema for persistent storage of users and their tasks.
Modular structure
Modular routing and reusable service functions keep the codebase easy to extend.
Tested endpoints
Every endpoint tested with Postman for correct responses and error cases.
Stack
- API
- PythonFastAPI
- Data
- SQLite
- Testing
- Postman
Result
- Every endpoint verified for both correct responses and error cases.
- Modular routing and reusable service functions keep it easy to extend.