Skip to content

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)