Inspiration

As students studying in Munich, we often rely on cycling in our daily lives, but it comes with specific challenges that have no concrete solutions yet. While standard navigation apps tell you how to get from A to B quickly, they don't tell you how to get there safely or comfortably.

  • The Safety Gap: Munich parks (like the Englischer Garten) are beautiful by day but can be pitch-black and dangerous by night
  • The Heat: In summer, urban heat islands make asphalt routes extremely hot, which can have a negative impact on health and discourage citizens from biking
  • Theft: Bike theft is a massive issue. Nonetheless, many riders unknowingly lock their bikes in high-risk zones

We built M-Radl not just as a GPS, but as an app that keeps you and your bike safe.

What it does

M-Radl provides multiple routing options, such as a Safe Mode to ride securely at night by avoiding dark areas, and a Cool Mode that analyzes and combines multiple data sources to calculate the shadiest route during the summer heat.

We also implemented a crowdsourcing approach where users can easily mark locations of bike racks, repair stations, and report theft zones to create Danger Zones that warn other users.

Finally, through our Watcher Mode, a rider can generate a unique Trip ID and share it with a friend. The friend can watch their live location on a map and is notified if the rider stops moving inside a known Danger Zone.

How we built it

We built M-Radl as a mobile-first web application using React and Tailwind CSS.

  • Mapping & Data: We used Leaflet for the map interface and Firebase Firestore for real-time synchronization of community reports and live rider locations.
  • The Routing Engine: We used the GraphHopper API for calculating route geometry and optimizations.
  • Environmental Analysis: To determine if a route is "Safe" or "Cool," we perform real-time analysis using OpenStreetMap and the Overpass API. By sampling points along the route and analyzing data from the API, we calculate a custom Safety Score or Sun Exposure Score.
  • Sun Calculation: We integrated suncalc to determine the sun's position relative to the user to accurately predict shade intensity.

Challenges we ran into

  • CORS & API Limits: We initially used Nominatim for geocoding, but ran into strict CORS blocking on localhost. We pivoted to GraphHopper's Geocoding API to ensure reliable address lookups.
  • Routing Latency: Querying OpenStreetMap for every street lamp along a 10 km route is slow. We optimized this by sampling the route geometry (checking every 10th coordinate) to balance performance with accuracy.

Accomplishments that we're proud of

We are proud of our idea, developed through multiple ideation and feedback rounds, since it's a solution we would actually use ourselves. On the technical side, we are proud of dynamically calculating and optimizing different route options based on user preferences. We also value our gamification system, which we believe can sharply increase user engagement and adds novelty compared to traditional navigation apps.

Looking back, we're proud of what we accomplished in such a short period of time — and most importantly, the logo is a banger.

What we learned

We refreshed our knowledge on React and efficient database management, including concepts such as hooks and reducing data redundancies. We extended our understanding of how web applications and protocols work and how to integrate various APIs.

This hackathon encouraged us to push our limits technically, as well as in work ethic and working hours :)

What's next for M-Radl

To increase usability, we plan to allow users to download their routes for offline use and add AI-powered voice directions. To extend gamification, we also want to include more personalized avatars.

Built With

Share this project:

Updates