Inspiration
There are two separate ideas that were the inspiration for this project.
Firstly, we personally had problems with mood trackers. Turning your whole day into a couple numbers and a sentence is incredibly difficult and doesn't do the nuances of life any justice. The obvious solution is to add more questions to have a more accurate account of each day; however, this turns a micro habit into a chore - completely killing motivation and defeating the purpose of consistent progress. So how do we fix this? Maybe we could turn this into a lighter reflection?
Secondly, we reflected on how people deepen relationships. Generalizing is bad. Generally, sharing feelings builds relationships and community. However, it's hard to share the context of feelings with someone without having a conversation. A photo doesn't contain the whole story and a video is infeasible for most cases. If we can make it easier to share feelings and start a conversation, that could be the key to building deeper relationships.
What it does
You can probably already guess we built a mood tracker. You can create an account, login and view your mood from the last month. The basics.
To address the first issue, the mood tracker asks for how you feel at a random time of day. This forces you to give the first thing that comes to mind which is a purer reflection of how you’re feeling at that time. At the same time, this is a low commitment habit that allows for gradual progress.
To address the second issue, we wanted to add friends and look at their moods. If your friend hasn’t been doing well recently, this is the spark that ignites the conversation. Through this, we can start conversations and build a stronger community.
How we built it
The frontend was built with React Native and connected using Apollo. The main framework of our UI was supported by React Native’s navigation library, which allowed us to set up our home and mood logging pages.For the backend, we used MongoDB Atlas for the database. We accessed the data through GraphQL queries built using a flask server. This required taking our data as documents and converting them into objects recognized by python. Then we built the API with GraphQL so that we could retrieve data through queries and edit data through mutations. This was all done with python.
Challenges we ran into
Connecting backend to frontend Passing values between screens in frontend
In the backend, we were using a lot of libraries. We wanted to use MongoDB and GraphQL and we chose Python for future machine learning applications. In the end, this required the use of multiple libraries like graphene and graphene-mongo (which are separate libraries for some reason). They all had to integrate together and we used pieces of each which meant it was extremely difficult to have a clear understanding of how each component worked.
Accomplishments that we're proud of
Finishing with a functional, presentable final product Creating a mood tracker that has daily check-in functionality
What we learned
Building a mobile app using React Native Configuring a GraphQL API Running flask servers
What's next for beFeel
Next steps for beFeel would target the desired social aspect of our mood tracker. We have set up the functionality to let users add friends and see data analysis of their recent moods. Additionally, we would be interested in including a map feature that would allow users to see the moods of other users in the area.
Link to video in case it doesn't work: link
Built With
- apollo
- expo.io
- flask
- graphql
- mongodb
- python
- react-native
Log in or sign up for Devpost to join the conversation.