Inspiration

We were inspired by the difficulty victims of abuse often face in not only recognizing abuse but also in finding support and other resources. We wanted to create a website that would be relevant to users in any location, and that would be both informative and accessible.

What it does

Safe Haven provides users with information about domestic violence and abuse, including signs of abuse and how to support those that are suffering from it. It allows users to input their zip codes to find organizations in their areas to increase awareness of support options. We have also provided tips and links to resources that help users understand how to recognize and recover from abuse.

How we built it

We used React.js for the front Express.js for the backend along with node.js and vite for managing dependencies and running the project. We used axios to make get requests to the Google Geocoding and Places APIs using a user's zip code, which we prompted for on the front end. The zip code was passed to the Geocoding API to fetch the latitude and longitude, which were then passed to the Places API along with keywords relating to domestic violence and women's shelters to find shelters in the user's area. We displayed these shelters on a Google Map using the Google Javascript Maps API.

Challenges we ran into

We had some difficulties managing dependencies once we shared the project with each other initially through GitHub. Our solution to this was managing version conflicts and ensuring we reinstalled dependencies in both the front- and backend after making changes. One of our main challenges was not being able to display data to the frontend despite receiving it in the terminal on the backend. We solved this by debugging and logging errors, through which we discovered a formatting issue with attribute retrieval in one of the get requests.

Accomplishments that we're proud of

We are proud of being able to pick up React, Express, and Node despite having little to no experience using them. We are also proud of having been able to implement calls to multiple APIs and displaying data on an interactive Google map, as none of us had used Google APIs before. We also were able to incorporate more styles than we initially thought we could.

What we learned

We learned the importance of preventing conflicts (e.g. merge conflicts), as they can slow down the development process. We also learned the importance of file organization and for isolating errors and maintaining general organization in the project. We also learned how to log and interpret error messages in the console, which was especially important as we tested and resolved errors involving the back-end.

What's next for Safe Haven

We initially planned to incorporate a feature that would allow users to add organizations in their communities to a database, from which we would fetch the organizations based on the state a particular user's zip code was located in. In the future, we would like to add this feature.

Share this project:

Updates