Inspiration
Our app concept was born from Cher's idea of a safety companion app. Clarissa suggested that we create a mascot from a combination of our favorite animals. Angela advocated for a cat, while Clarissa suggested Luxray. This ended up with us choosing Hackie, our tabby cat mascot! From there, our goal was to create an app that not only gives people a sense of safety, but also a feeling of comfort and warmth.
What it does
When the user is feeling unsafe, they can secretly simulate incoming phone calls. Double tap Hackie and a banner will appear showing a caller ID. If declined, Hackie will no longer be agitated and the fake phone call will end. If accepted, the screen will show the normal iphone calling display. After 10 seconds pass, it will redirect the user to emergency contact, with a prewritten text message stating that they are in danger, as well as their coordinates. Another function is the safety tips implemented in the app. A database of safety tips will appear when the user enters the app. These tips are completely randomized and provide valuable knowledge on staying safe.
How we built it
Cher used Procreate during the brainstorming process to help us visualize how our UI and mascot would look. This allowed us to begin app’s technical concepts. Angela kickstarted the frontend development by creating an Expo project. Using React Native, we built and styled our app screens. Clarissa spearheaded the backend setup with MongoDB. With Node.js and Express, we built a backend server capable of storing and retrieving user data and safety tips. Throughout development, we integrated frontend and backend components, testing for functionality and ensuring perfect communication between the two.
Challenges we ran into
At one point during the coding process, we encountered an issue with Expo and getting out Expo Go to load up our app. This slowed down our progress tremendously. Another time consuming challenge was how vague React Native's error messages can be. This made it super difficult to pinpoint the specific issues in our code. As a result, we had to pay extra attention to detail for the testing of our code. Installing and managing various dependencies and libraries was also difficult since we had to make sure everyone agreed with the final decision. Lasty, since we had a limited time to complete our project, we had to cut some more ambitious ideas out of the final product.
Accomplishments that we're proud of
Each member played a super crucial role in this project despite all the varying levels of experience among our group. Angela provided guidance with her React Native experience, while Clarissa and Cher focused on learning the framework from scratch. Meanwhile, Clarissa's prior experience with MongoDB allowed us to add a whole other function of the app, the safety tips. Even though she had never set up one entirely by herself before, she was able to navigate the process and give us a database to work with. Cher’s impressive digital art skills gave us the cute backgrounds and colorful UI to work with. She also adapted quickly, learning tools like Git, Visual Studio Code, and React Native!
What we learned
With more experience with Expo Go and React Native, we gained a solid understanding of the basics of app development. From setting up a project to implementing user interfaces and functionalities. Through this process, we also needed to brush up and hone our debugging skills. We faced much more errors along the way, so we had to learn how to troubleshoot effectively. Cher's contributions to the app's design process also deepened our understanding of visual consistency and user experience. Lastly, we had to learn to work efficiently with a limited timeframe, we had to have good time management and prioritization.
What's next for Catpanion
As Catpanion develops, we can see the addition of more functions to the settings section of the app. Currently, we only allow for the user to input another caller ID, but we can definitely expand on that by allowing the user to change the profile pictures from fake phone calls. We also want to introduce a variety of new Hackie skins that will add fun and personality to the app. Another thing we recognize is the importance of speed in times of emergencies. Catpanion would need to optimize the location update speed so that messages can be automatically sent without delay. We also want to add audio features to fake phone calls that will enhance their realism. Users will be able to select from a library of pre-recorded voices or even record their own. Implementing voice recognition technology will allow users to trigger actions using specific keywords. For example, recognizing inconspicuous phrases like "with cheese" can automatically initiate emergency protocols. Lastly, we want to work with UF Campus Police to release Catpanion for UF students. By expanding our target demographic beyond women and minority groups, we can provide valuable safety resources to a wider audience and contribute a safer campus environment for all students.
References https://docs.expo.dev/versions/latest/sdk/location/ https://docs.expo.dev/versions/latest/ https://docs.expo.dev/versions/latest/sdk/gesture-handler/ https://reactnative.dev/docs/touchableopacity https://legacy.reactjs.org/docs/getting-started.html https://www.mongodb.com/docs/
Log in or sign up for Devpost to join the conversation.