Inspiration
Coming into this hackathon, we immediately knew we wanted to target young adults, particularly students that are our age, to be the audience for our mental-heath-themed project. We began to brainstorm the different problems we've personally experienced while trying to maintain our day-to-day mental health. Two issues that came up were loneliness and failure of making self-care habitual. This loneliness seems to be a sentiment widely shared in our generation, who live in a world where mental health has been long stigmatized and much of our online presence revolves around a culture of toxicity bred by social media. Many of our own friends also attest to practicing self-care but never on a habitual basis. Therefore, we came up with the idea of BuddyCare, a web application that encourages the usage of a buddy system while tracking self-care activities - the presence of a buddy sharing a similar journey can make a person's journey feel a lot less lonely!
What it does
The overall goal of BuddyCare is to use a buddy system to encourage users to feel motivated and less alone in continuing their self-care on a day-to-day basis. To do this, it connects the user with an anonymous buddy and allows the user to choose an activity to do.
Further, specific details: To join BuddyCare, a user must create an account and answer a few short questions. These are to be displayed on their profile. Once they have joined, a user has a few different options in their profile: they can further edit their profile, edit their buddy status (whether they are looking for a buddy or not), and check in to the system. Users will now also be able to view other registered users on the home page. They can browse through their profiles and select as buddies if they wish to.
How we built it
None of us had ever built a project with Flask and SQL in the past, so it was our first time working with these new technologies. We had to learn from scratch by watching many youtube tutorials and experimenting with trial and error. In the end, we managed to successfully utilize Flask and SQL with Python, HTML, and CSS to create the web application that is BuddyCare!
Challenges we ran into
There were definitely many, many challenges that we ran into in the past two days.
One major issue was understanding how databases work (especially adding columns). Partly into our project, we had tried to add columns to an existing table without realizing that that's not allowed. After a lot of searching and more trial-and-error, we finally realized that this issue could be resolved by deleting the sqlite3 file completely and allowing the computer to recreate it.
Additionally, at some points, we forgot to return a template or redirect to another URL which caused the whole page to crash -- and in turn, caused one too many heart attacks.
We also weren't able to implement many of the features that we had originally planned to implement, because 2/3 of the way into the hackathon we realized just how complicated the pages were becoming.
Accomplishments that we're proud of
Although we weren't able to implement many of those features, we are still very proud of how far we have come with the project. Just 48 hours ago, we were still scrambling to understand what in the world Flask was (huge shoutout to Tech With Tim for helping us get past that) but now, we have an actual functional website with multiple pages and functions! In particular, we are especially proud of getting flash messages to work (they're so satisfying to see), being able to utilize and understand databases and sessions (that's pretty crazy to us). For most of us, it's our first hackathon, and we definitely all learned a lot.
What we learned
We learned so much. We learned how to use Flask with python, how databases work, how sessions keep users logged in, how to create login/logout pages, how to make buttons look pretty and functional, how to link CSS to HTML, and how to not lose the will to live!
What's next for BuddyCare
We have a lot of different features that we believe BuddyCare could implement in the future. Some of these include the intended features that we never got around to! For instance, we want to create a chat system, a day-by-day check-in streak, allow each activity page to display users who are currently using it, filter users based on question responses (make the list on the homepage more customized), and better-formatted pages overall.
Log in or sign up for Devpost to join the conversation.