random projects experience about me vivian wu
save our women
Women in Computing Summer Development Overall Best Project
Project Date: August 2020
Technologies: Python Flask, Google Firebase, Twilio API, Google Maps and Places API, Docker
Role: Back End Developer and Database
Team: Abbie Yip, Vivian Dang, Vivian Wu


Whether it be taking a walk, jogging, or going out to buy groceries, women often find themselves in situations where they have to be extra cautious of their surroundings.
Background
With the rise of sex trafficking and and kidnappings around the world, women have resorted to purchasing self protection items such as pepper spray, tasers, and alarms as means to keep themselves safe in fear of being victims to these horrendous acts. Although other apps to fight this include features like emergency contacts, police calls, there’s no one app that includes everything that a woman needs to stay safe, including awareness spreading and a section for tips.

While walking my dog in broad daylight, I find myself extra cautious with my surroundings, looking behind me every now and then to make sure no one’s following me. I even get startled by a car pulling over near me. Although I have pepper spray, I find the need for more items to keep myself safe. On social media, several other women have voiced their experiences surrounding this topic, thus leading me to want something that encompassed everything that pertained to women safety and that could connect us and our contacts.
Solution
Save Our Women - a Women's Safety App (iOS)
Inspired by recent events and increased media presence on women safety, this iOS app aims to promote the safety of women through awareness and action.

Features:
  • Emergency SOS Messaging and Location Tracking to Emergency Contacts - with the tap of a button, send Emergency SOS messages to your Emergency Contacts with your location

  • Creation of Incident Reports - create reports by pinpointing the location and description of an incident and share to others on the platform

  • Live Map of Incidents - integrated maps with pinpoint locations and incident hotspots/clusters

  • Scenario Based Audios and Tips - spread awareness and tips to ensure other women are well informed of recent issues and how they can keep themselves safe
User Research/Needfinding
save our women trafficking stats
These statistics derive from the 2019 data report for the U.S National Human Trafficking Hotline. As we understand that this does not encompass the entirety of trafficking cases, the large numbers allowed us to judge that this was an issue that needed to be addressed.


save our women sdawareness

Further, through investigating local social media pages like @sdawareness on Instagram, we found that there was a lot of attention on the topic but stayed central to just self reflected stories. This made us want to build an app that encompassed various topics pertaining to spreading awareness, tips, and safety.
save our women similar apps

We also investigated other apps related to safety and found Indian SOS Women Safety and Sister, both of which had similar features. We used these two apps to draw inspiration from but also refine and bring uniqueness to our app. We liked the ideas of the SOS Emergency Alert, Location Sharing, and the Tips/Videos. We found that these were core features that needed to be implemented together in one application.
Use Cases
After deciding on what core functionalities we wanted in our app, we created a chart of Use Cases that we wanted users to be able to do with our application. We prioritized our use cases with green as highest priority, yellow as medium priority, and red as lowest priority. This allowed us to set goals toward finishing what is needed minimally.

Section 1: Login
  • Users should be able to set up an account with the application

  • Users should be able to log in and log out of their account

Section 2: Homepage
  • Users should be able to access the homepage from the website

  • User can opt in to push notifications of reported incidents

  • User can send SOS emergency alerts and emergency contacts are notified

  • User can report incidents of harassment in the specific area

  • User can access other sections through a navigation bar

Section 3: Audios/Videos
  • Users should be able to play audios/videos on the app

  • Users should be able to save favorites on the app

  • Users should be able to upload audios/videos on the app

Section 4: User Settings
  • User can put down emergency point of contacts

Section 4: Miscellaneous
  • User can view tips for how to stay safe + what to do when you run into a certain situation

Section 5: Reviews/Newsfeed
  • User can view safety of areas they’re currently in

UI Design
We used Figma to design our app's UI. Starting with the Mockup, we gauged what elements we wanted on our screens and refined that to our Final.
Mockup
save our women mockup
Our mockups consisted of several inconsistencies with the home button, navigation bar, and settings button. Throuhgout our project timeline, we evolved our this into our Final design by deciding what we minimally needed in our app and how to implement it as minimalistically and simple as possible - because someone using the app may not have the time to dig through to find the SOS button in a dangerous situation.

Final
save our women final
Screen Descriptions
  • Sign Up/Login - Sign Up or Login to the Save Our Women

  • Home - Home directory, navigate to Newsfeed, Make a Report, or check out the Live Cluster Map

  • Make a Report - Witness or experience an offense? Create a report with the location, picture (if applicable) and a description of what happened to spread awareness

  • Newsfeed - View other reports of offense

  • Tips - View the directory of tips and videos on what to do based on certain scenarios

  • Emergency Contacts - Add your Emergency point of contacts

  • Emergency SOS - Press the SOS button to send an alert with your current location to your Emergency Contacts!
Programming
For our front end, we used React Native and Google Places and Maps API. We connected the front and back end through Axios.

I focused more on the back end, leveraging Python Flask as our back end server and Google Firebase as our database and authentication. I further implemented the Emergency SOS contact messaging through Twilio API and built Docker containers to allow front end to run the back end. To test my back end functionalities, I utilized Postman to parse my JSON strings, HTML, Javascript and Google Places and Maps API to test the basic layout.
Walkthrough
Below is a video demonstrating a simple walkthrough of our application and its key features:
Challenges we faced
Originally, we intended to use Google Maps and Places API in the back end but we found many issues when connecting the front and back end, so we had to move it to be used in the front end. Further, when we designed the app to be iOS, I was unable to test on my end due to having a Windows, so I ended up testing the back end functionality without having access to the front end and made basic HTML pages to test.
Reflection
Throughout this entire process, I learned to build an MVP given a 10 week timeline. It was also my first time engaging in a project, so I learned many new technologies such as Flask, Firebase, and REST APIs. Since this was conducted entirely online due to COVID-19, I found it challenging to communicate with my teammates, however we were able to tackle this through weekly standups and work sessions. Possible improvements this project could have expanded on given more time include more extensive user testing to find bugs in our app.
Sources