Homeless Shelter Availability

Full-stack application for finding homeless shelter options, viewing availability details, and moving quickly from search to directions.

Inspiration

Finding a shelter should not require digging through outdated websites, scattered PDFs, or provider portals while someone is already in crisis. We wanted to build a faster public-facing tool that makes shelter information easier to search, compare, and act on.

What it does

Homeless Shelter Availability gives users a public search experience for shelter listings. A user can search by ZIP code, address, or city, use their current location, review shelter details, filter by general or veteran-focused support, and open directions without leaving the workflow too early. The app is designed to keep the list usable even when map services are unavailable.

How we built it

We built the project as a Dockerized full-stack application. The backend is a Spring Boot API backed by PostgreSQL, with CSV-based data import scripts for loading shelter datasets into the database. The frontend is a map-first web experience served through nginx with runtime configuration for API and Google Maps integration. We also added caching, environment-based configuration, and dataset switching so the app can run locally or be deployed behind a custom domain.

Challenges we ran into

The hardest part was data quality and consistency. Different shelter datasets had different schemas, geographic coverage, and levels of detail. We also had to work through deployment issues like browser caching, runtime config generation, Docker container conflicts, CRLF shell-script problems inside Linux containers, and production assumptions that were still tied to localhost.

Accomplishments that we're proud of

We now have an end-to-end workflow that can import live shelter data, serve it through an API, and expose it in a usable public search interface. We are especially proud of the location-aware search flow, the ability to switch between datasets, the fallback behavior when maps are unavailable, and the fact that the local stack can be brought up quickly with Docker.

What we learned

We learned that deployment details matter just as much as product features. Runtime configuration, reverse proxy behavior, browser referrer restrictions for Google Maps, data normalization, and cache invalidation all had a direct impact on whether the product actually worked for users. We also learned how much shelter usability depends on accurate location and availability data, not just a polished interface.

What's next for Homeless Shelter Availability

Next, we want to improve dataset quality and geographic coverage, add more reliable coordinates for map placement, support better filtering and pagination for large result sets, and make the production deployment path more robust. Longer term, the goal is to provide a more complete and trustworthy public tool for locating shelter and related emergency housing resources in real time.

Built With

Share this project:

Updates