Fortis: Be Fearless

Inspiration

Urban navigation often overlooks a critical factor: safety. While maps help us get from point A to B, they don’t account for high-crime areas, leaving pedestrians vulnerable, especially during late hours or in unfamiliar neighborhoods.
This was especially important to us, living in San Jose. We wanted to build a tool that doesn’t just help you get somewhere quickly, but safely.
That's where Fortis comes in: a real-time, safety-aware navigation app that empowers users with knowledge and peace of mind.


What it does

Fortis is a safety-first route mapping and crime visualization platform.
It allows users to:

  • 📍 Input start and destination points and receive crime-aware walking routes.
  • 🧭 See routes color-coded by safety (Green = Safe, Red = Risky).
  • 🔥 Visualize real-time crime data on a heatmap.
  • 🧑‍🤝‍ Share location with trusted peers (mocked).
  • 🔎 Filter crimes by type and time.
  • 🌙 Navigate safely in a sleek, dark-themed interface optimized for night use.

How we built it

We used a modern full-stack setup:

  • Frontend: React (Next.js App Router), Tailwind CSS, TypeScript
  • Backend: Express.js server handling route safety scoring
  • Database: Firebase Firestore to store crime data and user info
  • Maps: Google Maps Platform via @react-google-maps/api
  • APIs:
    • Directions API for route generation
    • Places API for autocomplete
  • Analysis:
    • Custom algorithm using the Haversine formula and weighted crime severity to rate route safety
  • Mock Location Sharing:
    • Static data showing live friend positions with toggle settings
  • Low-Code Implementation
    By using Vercel's V0 and Bolt.new we were able to create the frontend of the website with ease. ---

Challenges we ran into

  • 🗺️ Using the Google Maps API, was especially difficult since it was our first time.
  • 🧠 Designing a good route analysis algorithm using Djikstra and A* that was both fast and meaningful.
  • 🌐 Handling geolocation permissions and fallback scenarios.
  • 🔧 Optimizing for performance and responsiveness across screen sizes with complex map interactions.

Accomplishments that we're proud of

  • Built a fully functional crime-aware routing system with live map rendering.
  • Designed a beautiful, dark-themed UI with Tailwind CSS and shadcn/ui components.
  • Implemented a clean, modular structure using TypeScript and custom hooks.
  • Developed a heatmap + filtering system that feels intuitive and fast.
  • Created a full mock peer-tracking feature, which could be easily expanded into real-time tracking.

What we learned

  • Learned to use not only the Google Maps APIs but Google Cloud Platform and how to control overlays, styles, and interactions.
  • How to use Firebase Firestore effectively for geospatial data.
  • The importance of good UX in safety-focused apps—users need clarity and confidence.
  • How to modularize code for scalability and reusability in large component-based systems.
  • The value of thoughtful error handling—especially when dealing with live location and network-based services.

What's next for Fortis

We're excited to take Fortis further by:

  • 🔔 Adding real-time crime alerts with push notifications
  • 💻 Fully implementing integration with Gemini for summarizing alerts, which we were only able to do halfway due to time limitations
  • 👥 Enabling live peer location sharing via Firebase Realtime Database
  • 🗃️ Expanding the database to support multiple cities
  • 📊 Building an admin dashboard for verified crime reporting
  • 🧪 A/B testing our route safety algorithm and improving its scoring accuracy
  • 🔐 Adding Firebase Auth for personalized experience and saved preferences

Fortis is just the beginning. We believe safety should never be optional—and we’re building toward a world where every route is the right one.

Built With

Share this project:

Updates