BikeLocker
An iOS app for the modern city biker — find and share information about bike parking around Vancouver using community reviews and open data from the Vancouver Police Department.
The Rationale
BikeLocker was built to solve a real problem for urban cyclists in Vancouver: knowing where to safely park your bike. Finding secure, available bike lockers around the city is often guesswork — relying on memory, word of mouth, or information that quickly goes out of date. BikeLocker centralizes that knowledge into a single, community-driven map.
The app draws from two sources of information: official bike parking data provided by the Vancouver Police Department, and contributions from the cycling community itself. Users can browse locker locations on a map, read reviews from fellow cyclists, and check safety ratings before committing to a spot — giving them the confidence to leave their bike without worry.
Beyond reading, users can actively contribute by adding newly discovered parking spots or leaving reviews on existing ones. This creates a living dataset that stays accurate as the city evolves. The combination of institutional data and community input makes BikeLocker more reliable and trustworthy than either source could be alone.
Architecture
The app is built in four layers. React Native handles the iOS UI and stores user session data locally via AsyncStorage. Apollo Client manages all data fetching, sending GraphQL queries and mutations to the API layer. The GraphQL resolvers pull from two sources: a database of bike parking locations seeded from VPD open data and community contributions, and the Google Maps API which provides map tiles, geocoding, and location search. The Maps API also feeds directly back to the React Native layer to render the interactive map.