- Docker and Docker Compose
- Make
# Build the containers
make docker-build
# Start all services
docker compose upFor cross-domain testing, the repository includes NoVNC and Selenium containers that provide a virtual browser environment accessible through your web browser.
Code style is automatically enforced using pre-commit hooks. Simply install pre-commit and the hooks will run automatically before each commit.
The codebase follows Domain-Driven Development principles with two main domains:
- Origins Domain
- Consent Domain
The application follows a strict layered architecture:
-
HTTP Layer
- Handles incoming HTTP requests
- Uses DTOs (Data Transfer Objects) to capture and validate request data
- Transforms DTOs to domain objects
-
Service Layer
- Contains core business logic
- Works with domain objects
- Independent of HTTP and database implementations
-
Repository Layer
- Abstracts data access
- Implements two repositories:
- PostgreSQL Repository: Primary application data
- BigQuery Repository: Audit log events (CQRS pattern)
-
Domain Objects
- Core business entities
- Used across all layers
- Independent of infrastructure concerns
API documentation is automatically generated using FastAPI's built-in Swagger UI. When running locally, access the documentation at: http://localhost:8000/docs