System Context¶
C4 Context Diagram¶
Shows the system and its users / external systems at the highest level.
The Task Manager has no dependency on any external system. All data is stored internally in an in-memory H2 database. There is no authentication, no email integration, and no third-party service communication.
C4 Container Diagram¶
Shows the internal building blocks (processes, databases) of this system.
Container Descriptions¶
| Container | Technology | Responsibility |
|---|---|---|
| Task Manager UI | React 18, TypeScript, Vite, TailwindCSS | Renders the task list and task form. Handles user interactions. Calls the API and displays error messages. |
| Task Manager API | Spring Boot, Java 25, Maven | Exposes the REST API (/api/tasks). Validates input. Enforces business rules. Manages persistence. |
| Task Database | H2 (in-memory, embedded) | Stores Task records for the duration of the API process lifetime. No file-based persistence. |
Provided APIs¶
See specs/api/provided/ for machine-readable specifications.
| Spec File | Protocol | Description |
|---|---|---|
api/provided/tasks.yaml |
REST | Full CRUD API for Task management (5 endpoints). |
Consumed APIs¶
This system consumes no external APIs.
Infrastructure¶
| Concern | Decision |
|---|---|
| Deployment target | Docker container (local) or any container runtime |
| Container runtime | Docker (multi-stage build; distroless runtime image per ADR-003) |
| CI/CD | GitLab CI (see .gitlab-ci.yml; hermetic build images per ADR-002) |
| Frontend build | Vite (TypeScript, bundled as static assets) |
| Backend build | Maven (JAR packaged by spring-boot-maven-plugin) |
| Database | H2 in-memory (embedded; no external database process required) |