Skip to content

10. Technology Stack — Full Breakdown

10.1 Backend Microservices

Service Framework Language Purpose
Property Registration Service Laravel 13 + Workflow PHP 8.4 Title deeds, ownership records, registration workflows
Transfer Service Laravel 13 + Workflow PHP 8.4 Property transfer lifecycle, approval chains
Building Permit Service Laravel 13 + Workflow PHP 8.4 Permit applications, review stages, inspections
Valuation Service Laravel 13 PHP 8.4 Property valuations, comparables, assessment history
Payment Service Laravel 13 PHP 8.4 Fees, taxes, payment gateway integration
Notification Service Laravel 13 + Kafka PHP 8.4 SMS, email, push (ntfy), WebSocket (consumed shared infra)
Appointment Service Laravel 13 PHP 8.4 Office booking, queue, check-in
Municipal Service Laravel 13 PHP 8.4 Zoning, subdivision, address management
Rental Registry Service Laravel 13 PHP 8.4 Rental contracts, landlord/tenant records
Document / OCR Service FastAPI Python 3.12 Legacy deed OCR, document validation, storage
GIS Service FastAPI + GeoServer Python 3.12 Spatial queries, parcel ops, WMS/WFS publishing
Analytics Service FastAPI Python 3.12 Dashboards, KPIs, ML valuation models
Audit Service Go (Gin) Go 1.22 High-throughput immutable audit logging

10.2 Laravel Stack Detail (Primary Backend)

Laravel 13 (PHP 8.4)
├── Sanctum / Passport      — API authentication (delegates to Keycloak)
├── Horizon                  — Redis queue dashboard
├── Telescope                — Debug/profiling (dev)
├── Octane (Swoole/FrankenPHP) — High-performance serving
├── Filament 3               — Admin panel (municipality staff)
├── Livewire 3               — Reactive UI components
├── Spatie Media Library      — File uploads/conversions (deeds, maps)
├── Spatie Permission         — RBAC (property roles)
├── Spatie Activity Log       — Audit trail
├── Spatie Translatable       — Multi-language models
├── Laravel Excel             — Import/Export (property reports)
├── Laravel Workflow          — BPMN-like state machines (transfers, permits)
├── Laravel Scout + Meilisearch — Full-text property search
├── Predis / phpredis         — Redis client
├── Laravel Kafka (junges/kafka) — Kafka producer/consumer
├── Laravel Modules (nwidart) — Domain modules (property, permits, valuation)
└── Pest PHP                  — Testing framework

10.3 GIS Stack Detail

Component Version Purpose
PostGIS 3.4 Spatial data storage, topology, geocoding
GeoServer 2.25+ WMS / WFS / WMTS tile serving
pg_tileserv Latest Vector tiles direct from PostGIS
OpenLayers 9.x Web map component (portal & admin)
Leaflet 1.9+ Lightweight mobile map (Flutter WebView)
QGIS 3.34 LTS Desktop authoring, bulk imports, QA
GeoPandas 1.0+ Spatial analysis in Python services
Shapely 2.x Geometry operations in Python
pyproj 3.x Coordinate reference system transforms

10.4 Frontend Technologies

Platform Technology Key Libraries
Property Web Portal Next.js 14+ (React 18) Tailwind 4, Shadcn/UI, TanStack Query, Zod, next-intl, OpenLayers
Property Mobile App Flutter 3.x (Dart) Riverpod, Dio, Hive, go_router, flutter_secure_storage, Leaflet WebView
Admin Dashboard Filament 3 (Livewire) Alpine.js, Tailwind CSS, ApexCharts, OpenLayers embed
Kiosk App Flutter (Android tablet) Kiosk mode, NFC, thermal printer SDK
Digital Signage React SPA (lightweight) WebSocket for real-time queue updates

10.5 Data Migration & ETL Tooling

Tool Purpose Used In
Apache Airflow 2.x ETL orchestration and scheduling Legacy property data migration, ongoing pipelines
Debezium Change Data Capture (CDC) Parallel-run sync during migration cutover
pgLoader Direct database migration (MySQL/SQL Server/SQLite → PostgreSQL) Legacy property registry imports
Great Expectations Data quality validation framework Migration validation, ongoing data quality
Pandas + SQLAlchemy (Python) One-off data transformations and quality checks Ad-hoc migration scripts
QGIS + ogr2ogr Geospatial format conversion (Shapefile, DWG, CAD → PostGIS) Legacy survey/map data ingestion