Architecture style
This project follows a clean, layered structure optimized for maintainability:
- Routes define public HTTP endpoints.
- Controllers translate HTTP concerns into application commands.
- Services hold business logic.
- Prisma ORM abstracts database queries.
Diagram placeholders
[Diagram] Request flow sequence diagram
[Diagram] Component diagram (routes/controllers/services/db)
Layers and responsibilities
1) Client / API testing layer
- Consumers (frontend, mobile, scripts) and tools (Postman).
- Responsibility: send HTTP requests, receive responses, follow redirects.
2) Express backend layer
- Express app + middleware pipeline.
- Responsibility: routing, validation middleware, error handling, request context.
3) Controllers
- Responsibility: map input (req) to service calls; set correct status codes and response shapes.
- No database queries directly.
4) Services