Inspiration

Covid-19 has made homelessness a more dire situation. While researching for current homeless shelter we found that the number 211 provides services to Canadians needing for shelter. Unfortunately, 211 does not have access to the number of shelter available right away, instead they need to call different shelters to know their current status. We hope to help this situation by providing with an API that 211 can incorporate in their website and for others to use.

What it does

Our application allows individuals to search for shelters nearby and know the amount of beds available. Moreover, it also allows individuals, such as shelter managers to update the amount of beds available. We provide an API that services like 211 can use.

How We built it

We built a backend using Python 3 which used Flask for the API layer and SQLAlchemy for the database layer. The backend is a CRUD API which stores and updates data directly in the database with some validation.

The frontend was built in plain Javascript and HTML, making use of XMLHttpRequests in order to communicate with the backend. We also used Google's Map APIs to embed an interactive map as well as fetch coordinates given an address in the search bar. The coordinates are used to find the closest shelter.

Challenges I ran into

It was difficult to set up the Google APIs as well as coordinate what data the frontend and backend should be communicating.

Accomplishments that I'm proud of

What I learned

How REST APIs work, and how a backend is structured, with data, service, and API layers. Also how HTTP calls are made for the frontend to communicate with the backend.

What's next for Shelter Finder

Anyone can update or add any shelter right now. There should be access controls so malicious intent can be minimized. More shelters can be added as well.

Built With

Share this project:

Updates