This project aims to implement the exact same Task Manager API across multiple programming languages and frameworks. The goal is to compare syntax, project structure, performance, and developer experience (DX) between different backend technologies.
Create a simple but complete REST API with:
- Authentication: JWT & Password Hashing.
- CRUD: Create, Read, Update, Delete operations for Tasks.
- Database: PostgreSQL (shared across all implementations).
- Docker: Containerized database for easy setup.
- API Specifications: Detailed documentation of all endpoints, request/response formats, and status codes.
- Database Schema: Entity Relationship Diagram (User & Task).
The project uses a shared PostgreSQL database running in Docker.
- Docker & Docker Compose
-
Start the database:
docker compose up -d
This will start a PostgreSQL instance on port
5432(User:admin, Pass:password, DB:taskmanager_db). -
Navigate to a specific language folder (e.g.,
nest/,go/,python/) and follow its specificREADME.md(to be created) for running the application.
| Language | Framework | Status |
|---|---|---|
| TypeScript | NestJS | 🚧 Pending |
| Go | Standard Lib / Chi | 🚧 Pending |
| Python | FastAPI | 🚧 Pending |
| PHP | Laravel | 🚧 Pending |
| Java | Spring Boot | 🚧 Pending |
| Ruby | Rails | 🚧 Pending |
| C# | .NET | 🚧 Pending |
| Rust | Axum | 🚧 Pending |
| Zig | Zap | 🚧 Pending |
For every implementation, the following features must be present:
- Database Migration/Sync.
- User Registration (hashing password).
- User Login (returning JWT).
- Middleware to protect
/tasksroutes. - Create Task (linked to user).
- List Tasks (filtered by user).
- Get Task Details.
- Update Task.
- Delete Task.