Inspiration

For university students and young professionals, relocating to a new city is incredibly stressful. The biggest struggle is always trying to find the "sweet spot" between affordable rent and a tolerable commute. Usually, this involves keeping 15 tabs of Zillow and Google Maps open, guessing what traffic might look like on a Tuesday morning, and hoping for the best. I wanted to build a single source of truth that definitively maps out the trade-off between time and money.

What it does

NestNav is a smart relocation dashboard that helps users find their perfect neighborhood. Instead of relying on user-reported estimates, it aggregates real-world government housing data (from the US Department of Housing and Urban Development) alongside live traffic profiling (from Mapbox).

Users can select a city and instantly see the official average rent for different apartment sizes. More importantly, NestNav provides a highly accurate "Commute Profile" chart that shows exactly what the drive from the surrounding suburbs to downtown looks like broken down by the hour—so you know exactly how painful Rush Hour will be before you sign a lease.

How we built it

The frontend was built using React.js and Vite, styled with a modern, responsive "glassmorphism" aesthetic. For the backend, I realized that if the frontend called the Mapbox Matrix API directly every time a user loaded the page, it would burn through our API limits in a matter of hours. To solve this, I engineered a scalable data pipeline:

Wrote a custom Node.js collector script. Deployed it to GitHub Actions as an automated job. Every 30 minutes, the script quietly wakes up, pings the Mapbox API to check the traffic from the suburban neighborhoods to their city centers, and updates a running historical average inside a Firebase Firestore NoSQL database. The React frontend simply listens to Firebase. This resulted in lightning-fast load times and zero risk of hitting third-party API rate limits.

Challenges we ran into

The biggest challenge was definitely API limit management and system design. Figuring out how to track historical traffic data without making thousands of API calls a day forced us to completely rethink the architecture and build the GitHub Actions caching layer.

Additionally, working with the HUD government API was tricky. The government uses highly specific "Core Based Statistical Area" (CBSA) ID codes for different regions, so I had to map out the exact geographical zones and IDs for cities like New York and Dallas to ensure the rent data being pulled were accurate.

Accomplishments that we're proud of

I'm incredibly proud of the backend caching architecture. Finding a way to provide 24/7 historical traffic data to users using a completely free, automated pipeline was a huge win. The UI/UX—turning raw JSON data from a government API into an interactive. Finally, building the entire project using an AI for a vibe coding approach, demonstrating how AI can be used to architect and implement complex full-stack systems.

What we learned

I learned a massive amount about cloud architecture, database design, and CI/CD pipelines, GitHub Actions. I also learned how to read, interpret, and integrate rigid government datasets and translate them into consumer-friendly frontend graphs using Chart.js.

What's next for NestNav

I have three big features planned for the future:

  • Search By Address: Implementing the Mapbox Directions API so users can type in a specific apartment address and get a custom commute profile.
  • The "Sweet Spot" Heatmap: A visual map that colors ZIP codes green or red based on a mathematical formula combining their average rent price and commute time.
  • Public Transit Integration: Integrating GTFS-Realtime feeds from local city metros so users who don't own cars can track bus and train commute times.

Built With

  • chart.js
  • css
  • firebase-firestore
  • github-actions-(ci/cd-automation)
  • html
  • javascript
  • mapbox-matrix-api
  • node.js
  • react-chartjs-2
  • react.js
  • us-department-of-housing-and-urban-development
  • vercel
  • vite
Share this project:

Updates

Submission history