Demo Video Link
demo link
Inspiration
Homelessness is a growing problem in many communities, especially the around the SF Bay Area. Homeless individuals often struggle to find basic necessities such as food, shelter, and healthcare. This can be due to a lack of resources or knowledge of available services in the area. We chose to create a website instead of an app because not every homeless person has access to a mobile phone. This site can work on any browser, meaning that public libraries are able to host Project Uplift on their public computers' browsers.
What it does
Project Uplift is a platform that aims to help homeless people find information on nearby food banks, shelters, and other opportunities, such as local programs to help further the user's education, within a 20 mile radius of the user. The website is designed to be user-friendly and easy to navigate, providing a comprehensive directory of services available in the community. Our site also features a text message alert system that allows the user to sign up for text messages alerting them if the weather falls below 45 degrees Fahrenheit within the next 24 hours. This allows them to find a shelter using Project Uplift before cold weather hits, making them more prepared.
Features
- Address input
- Finding shelters within a 20 mile radius
- Finding food banks within a 20 mile radius
- Access to job resources
- Access to education resources
- Text message notifications when the forecast temperature for the area reaches below 45 degrees Fahrenheit
- Dynamic and responsive design
How we built it
All the resources used:
- HTML, CSS, JavaScript
- Google Firebase
- OpenWeatherMap API
- Radar API
- Twillio Text Messaging API
We built the website using HTML, CSS, and Javascript, and since there was no API for homeless shelters and/or food banks, we compiled a list of resources in Google Firebase. These are being pulled to the website, and then if they are within a 20 mile radius of the user's inputted locations' latitude and longitude (addresses are taken to latitude and longitude using the Radar API). A similar process works for the education and job resources, except for the 20 mile radius limit.
Challenges we ran into
One big challenge was converting a user inputted address to latitude and longitude, as well as then filtering based on which shelters and food banks are within a 20 mile radius.
To convert the user inputted address to latitude and longitude we had trouble finding a free API, but ended up settling on Radar, which worked very well. It is also very accurate, which is great.
For the filtering, we wrote Javascript code for the Haversine formula to calculate the distance in miles between two latitude and longitude points. We also tried calculating the distance with the Radar API, but that took way longer to load, so we ended up settling on the implementation with the Haversine formula. This not only allows us to filter what is in the 20 mile radius, but also show each shelter and food banks’ exact distance from the inputted address.
Accomplishments that we're proud of
We are super proud of the notification text messages system using Twillio and OpenWeatherMap API. Getting forecast temperatures using the API was fine, but it was a struggle to get the curl post request working using javascript (especially converting the auth token to base64 and inputting it correctly). We are super proud of that now that it works, and this is the first time any of us had worked with Twillio, OpenWeatherMap API, and Radar API.
We are also really proud of the design and the overall look of the website.
What we learned
- Latitude and Longitude coordinates (converting those to an address and vice versa)
- Haversine formula to calculate distance in miles
- Twillio text messages (Twillio API)
- Radar API
- OpenWeatherMap API
- Dynamic websites
What's next for Project Uplift
Project Uplift is planning on adding a feature for certified organizations, which allows these organizations to submit verified job listings, events (e.g. clothing drives, community events) and opportunities. This is helpful because users are then able to have up-to-date resources and current job listings, no matter the time. We would also love to include more situations in which text alerts get pushed out, such as natural disasters, wind, or extreme heat.
Built With
- css
- firebase
- firebasefirestore
- github
- html
- javascript
- openweathermap
- radarapi
- twilio


Log in or sign up for Devpost to join the conversation.