Architecture Constraints
Technical Constraints
| Constraint | Description |
|---|---|
Frontend Framework |
NextJS with TypeScript is the required frontend framework, providing server-side rendering and static generation capabilities. |
Backend Language |
Python is used for backend services, data processing, and machine learning workloads. |
Database |
PostgreSQL is the primary relational database, accessed through Supabase. |
Cloud Provider |
Google Cloud Platform (GCP) is the primary cloud provider, using Cloud Run for containerized services. |
Source Control |
GitHub and Azure DevOps are used for code source control. Both repositories must be kept in sync. |
Authentication |
Supabase Authentication is the primary identity provider. Account Federation between Google Workspace and Azure Entra is required for internal team access. |
Map Services |
Google Maps Platform APIs and Mapbox are the designated mapping providers. Ghana Post Digital GPS Address decoding must be supported. |
Organizational Constraints
| Constraint | Description |
|---|---|
Regulatory Compliance |
The platform must comply with PCI DSS (Payment Card Industry Data Security Standard) and GDPR (General Data Protection Regulation). |
Ghana-Specific Integration |
The platform must integrate with Ghana-specific organizations: Ghana Real Estate Development Association, Lands Commission, Ghana Home Loans, Ghana Institute of Engineers, Ghana Institute of Architects, and Ghana Court Systems. |
Security Model |
Workload Identity Federation must be used for integration between GitHub/Azure DevOps and Google GCP. Service account passwords must not be shared across platforms. |
Workflow Engine |
Windmill is the designated workflow implementation tool for backend process automation. |
Conventions
| Convention | Description |
|---|---|
Documentation |
Architecture documentation follows the arc42 template using AsciiDoc format, generated via docToolchain. |
API Design |
RESTful APIs following OpenAPI specification for external integrations. |
Code Style |
TypeScript strict mode for frontend. Python type hints and linting for backend services. |
Infrastructure as Code |
Cloud infrastructure defined using infrastructure-as-code practices for repeatable deployments. |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.