eb
eb
01Home02Projects03About04Contact
←Back

ParkPal

A location-based parking finder for downtown Calgary, demonstrating advanced spatial database optimization, React Native architecture, and performance-focused development.

GitHub
~120ms
Query Time
PostGIS spatial queries
200+
Locations
Downtown Calgary
100%
Coverage
Jest + Supertest
Real-time availability with distance calculations
Interactive markers with spatial clustering
Live session tracking with zone-based rates

Real-time availability with distance calculations

Overview

ParkPal addresses the challenge of finding available parking in downtown Calgary by providing real-time, location-aware search across 200+ parking spots.

Originally developed as a five-person capstone project, I individually redesigned and rebuilt the application to focus on performance optimization, clean architecture, and modern React Native patterns.

Technical Focus

  • Spatial database optimization
  • Real-time location services
  • Performance-focused architecture
  • Comprehensive test coverage

Core Features

  • GPS & manual location search
  • Radius-based spatial queries
  • Interactive map with clustering
  • Session tracking & cost calculation

Technical Implementation

01

Spatial Database Architecture

Challenge

Standard database queries were too slow for real-time location-based searches across 200+ parking spots

Approach

Implemented PostGIS spatial indexing with ST_DWithin for efficient radius-based queries

Result

Achieved ~120ms average query time, verified through Jest + Supertest automated testing

02

Performance Optimization

Challenge

Map interactions triggered excessive API calls, causing lag during panning and zooming

Approach

Implemented 300ms request debouncing, memoized distance calculations, and lazy marker loading

Result

Eliminated redundant API calls while maintaining smooth, responsive user experience

03

Architecture & Maintainability

Challenge

Screen components grew to 500+ lines with mixed UI and business logic

Approach

Extracted custom hooks (useLocationManager, useParkingSpots, useSessionManager) following separation of concerns

Result

Improved code maintainability and achieved 100% test coverage

My Contributions

Architecture & Design

  • Complete UI/UX redesign with map-first interaction model
  • Designed and implemented custom hook architecture
  • Created reusable component library with consistent patterns

Database & Backend

  • Implemented PostGIS spatial indexing for efficient location queries
  • Built RESTful API with Node.js and Express
  • Migrated database infrastructure to Supabase for improved scalability

Performance & Testing

  • Optimized API calls with debouncing and memoization strategies
  • Implemented lazy loading and spatial clustering for map markers
  • Established comprehensive test suite achieving 100% coverage with Jest and Supertest
←All ProjectsNext: EVision→