Skip to content

ParkLocator

Mall parking reservations for Cebu with PostGIS search and lock-safe booking across three apps.

2025Flutter, Dart, NestJS, Angular, PostGIS

Problem

Existing parking apps are either too generic (Google Maps) or lack proper admin tools and spatial querying. A dedicated platform was needed with a mobile app for users to find nearby parking spots, an API with geospatial search, and an admin portal for parking spot management.

Constraints

  • Monorepo must keep three apps (Flutter, NestJS, Angular) independently buildable
  • PostGIS spatial queries for radius-based parking spot search
  • Docker Compose for database, must support Apple Silicon (ARM64) via emulation
  • Each app must have independent test suites

Key Decisions

  1. Flutter over React Native

    Needed a cross-platform mobile framework with strong performance for map rendering and geolocation to display parking spots.

    Chose Flutter for its native performance, rich widget library, and strong geolocation/maps ecosystem (Very Good CLI for project structure).

    Trade-off: Dart learning curve vs JavaScript familiarity, but better performance for map-heavy UI and type safety built into the language.
  2. NestJS over Express for the API

    API needs structured patterns for auth, validation, and module separation as it grows.

    Used NestJS for its opinionated architecture with dependency injection, decorators, and built-in validation pipes.

    Trade-off: More boilerplate than Express, but enforced structure prevents code organization problems at scale.
  3. PostGIS over application-level geospatial calculations

    Parking spot search requires efficient radius queries and spatial indexing.

    Used PostGIS extension for PostgreSQL to handle spatial queries natively with GiST indexes.

    Trade-off: Requires PostGIS-specific Docker image and spatial SQL knowledge, but orders of magnitude faster than application-level distance calculations.
Role
Sole engineer
Timeline
Dec 2025 - Feb 2026
Stack
Flutter, Dart, NestJS, Angular, PostGIS, PostgreSQL, Docker, TypeScript