File tree
Een overzicht van de mappstructuur van de MMMS backend. Bedoelt als naslagwerk voor snellere navigatie binnen de ontwikkelomgeving.
Directory
backend/
- app.py # Hoofdapplicatie entry point
Directorychalicelib/ # Applicatiebibliotheek
Directoryaws/ # AWS service integraties
- aws_credentials_manager.py # AWS credentials management
Directorycontrollers/ # HTTP request handlers
- api_key_controller.py # API key endpoints
- mail_controller.py # Mail endpoints
- README.md # Controllers documentatie
Directorymodels/ # Pydantic data models
- api_key_model.py # API key data models
- mail_request_model.py # Mail request models
- sqs_message_model.py # SQS message models
Directoryresponse/ # Response data models
- base_response_model.py # Base response model
- README.md # Model documentatie
Directoryqueries/ # SQL queries
- api_queries.py # API key SQL queries
Directoryrepositories/ # Data access
- api_key_repository.py # API key data access
- base_repository.py # Base repository pattern
- sqs_repository.py # SQS data access
- README.md # Repositories documentatie
Directoryservices/ # Business logic
- api_key_service.py # API key business logic
- logger_service.py # Logging service
- mail_service.py # Mail business logic
- README.md # Services documentatie
Directoryutils/ # Utility functies
- api_key_utils.py # API key utilities
- auth_middleware.py # Authenticatie middleware
- decorators.py # Custom decorators
- error_handler.py # Error handling utilities
- error_middleware.py # Error handling middleware
- response_utils.py # Response formatting
- validation_utils.py # Input validatie
- README.md # Utils documentatie
Directorytests/ # Test suite
- conftest.py # Pytest configuratie
Directorycontrollers/ # Controller tests
- test_api_key_controller.py # API key controller tests
- test_mail_controller.py # Mail controller tests
Directoryrepositories/ # Repository tests
- test_api_key_repository.py # API key repository tests
- test_sqs_repository.py # SQS repository tests
Directoryservices/ # Service tests
- test_api_key_service.py # API key service tests
- test_mail_service.py # Mail service tests
Directoryutils/ # Utility tests
- test_api_key_utils.py # API key utils tests
- test_auth_middleware.py # Auth middleware tests
- test_decorators.py # Decorators tests
- test_error_handler.py # Error handler tests
- test_error_middleware.py # Error middleware tests
- test_response_utils.py # Response utils tests
- test_validation_utils.py # Validation utils tests
- README.md # Test documentatie
Directory.chalice/ # Chalice configuratie
- …
- requirements.txt # Python dependencies
- pytest.ini # Pytest configuratie
- README.md # Project documentatie
Directory Beschrijvingen
Section titled “Directory Beschrijvingen”Root Level
Section titled “Root Level”app.py: Hoofdapplicatie entry point met Chalice routes en SQS consumerrequirements.txt: Python dependencies voor de applicatiepytest.ini: Pytest configuratie voor test uitvoeringREADME.md: Project documentatie en setup instructies
chalicelib/
Section titled “chalicelib/”De applicatiebibliotheek georganiseerd volgens lagenarchitectuur:
aws_credentials_manager.py: AWS credentials management en service client configuratie
controllers/
Section titled “controllers/”api_key_controller.py: HTTP handlers voor API key management endpointsmail_controller.py: HTTP handlers voor email verzending endpointsREADME.md: Controllers documentatie en best practices
models/
Section titled “models/”api_key_model.py: Pydantic models voor API key data validatiemail_request_model.py: Pydantic models voor email request validatiesqs_message_model.py: Pydantic models voor SQS message validatieresponse/: Response data modelsbase_response_model.py: Base response model voor consistente API responses
README.md: Model documentatie en validatie regels
queries/
Section titled “queries/”api_queries.py: SQL queries voor API key database operaties
repositories/
Section titled “repositories/”api_key_repository.py: Database access voor API key operatiesbase_repository.py: Base repository pattern implementatiesqs_repository.py: SQS queue access voor message publishingREADME.md: Repository documentatie en data access patterns
services/
Section titled “services/”api_key_service.py: Business logic voor API key managementlogger_service.py: Logging service configuratie en utilitiesmail_service.py: Business logic voor email verzending via AWS SESREADME.md: Service documentatie en business logic patterns
utils/
Section titled “utils/”api_key_utils.py: Utilities voor API key generatie en validatieauth_middleware.py: Middleware voor API key authenticatiedecorators.py: Custom decorators (@timer, @cache)error_handler.py: Error handling utilities en custom exceptionserror_middleware.py: Centralized error handling middlewareresponse_utils.py: Response formatting utilitiesvalidation_utils.py: Input validatie utilitiesREADME.md: Utils documentatie en utility patterns
tests/
Section titled “tests/”Test suite georganiseerd per laag:
controllers/
Section titled “controllers/”test_api_key_controller.py: Unit tests voor API key controllertest_mail_controller.py: Unit tests voor mail controller
repositories/
Section titled “repositories/”test_api_key_repository.py: Unit tests voor API key repositorytest_sqs_repository.py: Unit tests voor SQS repository
services/
Section titled “services/”test_api_key_service.py: Unit tests voor API key servicetest_mail_service.py: Unit tests voor mail service
utils/
Section titled “utils/”test_api_key_utils.py: Unit tests voor API key utilitiestest_auth_middleware.py: Unit tests voor auth middlewaretest_decorators.py: Unit tests voor decoratorstest_error_handler.py: Unit tests voor error handlertest_error_middleware.py: Unit tests voor error middlewaretest_response_utils.py: Unit tests voor response utilitiestest_validation_utils.py: Unit tests voor validation utilities
Best Practices
Section titled “Best Practices”File Naming
Section titled “File Naming”- Controllers:
{feature}_controller.py - Services:
{feature}_service.py - Repositories:
{feature}_repository.py - Models:
{feature}_model.py - Tests:
test_{feature}_{layer}.py
Directory Organisatie
Section titled “Directory Organisatie”- Separation of Concerns: Elke laag heeft zijn eigen directory
- Test Coverage: Tests georganiseerd per laag voor betere maintainability
- Documentation: README.md bestanden in elke directory voor context
- Utils: Herbruikbare utilities gescheiden van business logic
Import Structure
Section titled “Import Structure”# Standard library importsimport jsonfrom datetime import datetime
# Third-party importsfrom chalice import Responsefrom pydantic import BaseModel
# Local importsfrom chalicelib.services.mail_service import MailServicefrom chalicelib.utils.response_utils import create_success_response