Mobile App for Parking Search
Parking search is a real-time data task. User doesn't want to know "parking exists at address X", but "how many free spots right now". Without current data, the app is useless — driver arrives at parking and sees "no spaces". So first question in development — where does parking occupancy data come from.
Parking Data Sources
Smart parking with sensors (ultrasonic, magnetic) transmit via IoT gateways. Integration via REST API or MQTT. Data updates every 30-60 seconds. Best scenario — accuracy near 100%.
City APIs — many cities publish municipal parking data via open APIs. London, Berlin, Barcelona — have ready feeds. Format usually JSON REST or CSV.
Crowdsourcing — users mark "took space" / "freed space". Low accuracy, works as supplement to other sources.
Data providers — ParkWhiz API, SpotHero API, Parkopedia — aggregators with parking data in US/Europe. Paid but with coverage.
Architecture: server aggregates from all sources, normalizes to single model ParkingSpot { id, lat, lng, capacity, available, price, type, schedule }, client receives via REST or WebSocket.
Parking Map
Markers show occupancy by color: green (>50% free), yellow (20-50%), red (<20%), gray (no data). Google Maps SDK GMSMarker with custom iconView or Mapbox SymbolLayer with data-driven styling — marker color from available_percent field in GeoJSON.
Clustering at low zoom: cluster shows total free spaces from all parkings inside. DefaultClusterRenderer (Google Maps Utility) overridden for custom display.
On approach to parking (tap marker) — bottom sheet with details: entrance map, prices by hours, working hours, entrance photo.
Address Search with Route Building
User inputs destination address → app shows parkings within 300-500 meters, sorted by distance + availability. "Route" button → route building to selected parking via Google Maps SDK openWithBundleId deep link or in-app navigation via Mapbox.
Booking and Payment
Pre-booking — reserve space for specific time. Not all parkings support this, depends on automatic gate availability.
Booking form: entry and exit date/time, cost calculation on server. Payment via Stripe, local processor, Apple Pay / Google Pay. After payment — confirmation with QR code for entry or PIN for gate.
For parkings without automatic gate — meter payment via app. Push notification 15 minutes before paid time expires with option to extend from notification (UNNotificationAction).
History and Favorites
Recently visited parkings — auto from order history. Favorites — manual add. Sync via backend, available on all user devices.
Notification "your favorite parking at office freed up" — geofence + watch for available > 0 via WebSocket. User subscribes to specific parking.
Indoor Navigation
Advanced feature for large malls: indoor navigation within parking (floor, sector). Requires separate venue maps (Google Indoor Maps or custom SVG plans), positioning via WiFi fingerprinting or BLE beacons.
Simple option: photo of parking map with description "enter from mall side, floor -2, sector C".
Stack: Flutter or native iOS/Android, Google Maps SDK or Mapbox, Stripe/local processor, WebSocket for real-time updates.
Timeline: 8 to 14 weeks. Cost calculated individually.







