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.