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 |