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



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
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
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
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