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 XMLHttpRequest
s 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.
Log in or sign up for Devpost to join the conversation.