🧭 ShelterFinder

ShelterFinder is a Flutter web app designed to help users quickly locate nearby shelters and food pantries using real-time geolocation and the Google Maps API. This project demonstrates my ability to integrate front-end and back-end services, troubleshoot live API issues, and build helpful tools with real-world impact.

ShelterFinder UI Overview ShelterFinder Map View Herb the Mascot
Herb the Mascot

Meet Herb, your friendly mascot and guide. Herb appears during onboarding to help new users navigate the app and feel welcomed β€” part of my emphasis on user-centered design, especially for vulnerable populations.

πŸ”§ Features

  • Built with Flutter for web
  • Real-time user geolocation
  • Google Maps Places API integration
  • Node.js/Express backend for proxying requests securely
  • Search for homeless shelters and food pantries by location
  • Mobile-friendly onboarding with mascot assistant β€œHerb”

🧰 Tech Stack

Flutter Β· Dart Β· Node.js Β· Express Β· Google Maps JavaScript API Β· RESTful API integration Β· Git

πŸ“ Dynamic Shelter Results

ShelterFinder uses the Google Maps Places API to dynamically search for nearby shelters and food pantries based on the user’s geolocation. This screenshot shows real-time console output as the app adds markers for each matching result β€” in this case, 36 local resources were found and mapped.

Console Output with Shelter Markers

🧠 Code Highlights

Here are selected code samples from ShelterFinder, showcasing geolocation, search logic, mascot UI, and more:

getUserLocation Function

Dart function to retrieve and store the user’s real-time geolocation for use in map queries.

fetchNearbyShelters

Core method that fetches nearby shelters using the Places API and drops markers on the map.

Herb Avatar Widget

UI widget for Herb, the ShelterFinder mascot, used during onboarding to add charm and guidance.

Load Google Maps JS API

Google Maps JavaScript API loaded dynamically for optimized Flutter web integration.

Speech Bubble Widget

Speech bubble widget system used by Herb to deliver onboarding and user guidance text.

Search Location Logic

Search logic for letting users explore shelters in a different location than their own.

Flutter Dependencies

`pubspec.yaml` highlights key dependencies like `google_maps_flutter_web`, `http`, and `geolocator`.

API Key Loading Logic

Secure API key handling and environment-aware setup for loading credentials into the Flutter app.

πŸ’‘ Reflection

While currently paused, ShelterFinder showcases my full-stack development skills and my ability to troubleshoot API authentication, structure modular code, and develop user-friendly experiences under realistic constraints. I plan to return to this project with a refreshed UI and enhanced filtering options in the future.

πŸ”— View the code on GitHub β†’

πŸš€ Want to collaborate on a project like this? Whether it’s building a geolocation tool, improving digital access, or creating something totally new β€” I’m always open to working on meaningful tech.

πŸ‘‰ Contact me or view more of my work.