-
-
Sign Up Page
-
About Page
-
Friends page with search bar to populate new friends
-
Journal Page with Sentiment Analysis
-
Email automatically sent to friends if journal sentiment is negative
-
Store page with unlocked avatars
-
Firebase with authenticated users
-
Shows our usage for our firebase application
-
Shows journal entries for a user
-
All data for a user (ex. friends, locker, email, points, etc.)
Inspiration
We wanted to address mental health concerns in a non-traditional fashion. A lot of people want to do things to take care of their mental health but don't do it because it is hard to get into it at first. We realized that we could motivate people to do these things by making it fun with an interactive website where they can go on a mental health journey with their friends. What looks like just doing tasks, gaining points, and buying avatars, is actually creating positive habits for users and increasing their emotional well being long term.
What it does
Users can sign up and login to our website. The landing page is an about page where users can learn about the site. On the journaling page you can enter a journal entry for the day. A machine learning model running in a flask server analyzes the sentiment of the journal entry. The sentiment for the day's entry is reflected in the opacity of the calendar UI elements with darker being more positive and more transparent being more negative. Also, if the sentiment is negative, the flask server makes SMTP API requests to send an email to all your friends on the app letting them know that they should check in on you because sometimes it can be difficult to reach out for help. In the shop you can complete smaller tasks and get points for the day. The incentive for the gaining the points is the avatars you can buy. You can switch out your avatar with unlocked avatars at any time.
How we built it
We utilized React to render our frontend dynamically based on user interactions with the webpage. We also used Firebase for its authentication and database services. A flask server was running in the background which queries our ML model trained on a Kaggle dataset to perform sentiment analysis. The server also has a route to send emails to all the user’s friends using the SMTP python library.
Challenges we ran into
Merging all of our different code bodies on our respective devices was very hard. We all did so much work individually which made it hard when it came to combining all of them. We learned for the future that we need to constantly be communicating and updating the repository so we run into less merge conflicts.
It was also very hard to integrate Firebase with our web app. We implemented a Firebase backend in order to have a secure user authentication with Firebase Authentication and store user information safely using Firebase Firestore; however, learning and integrating these services took time and effort from our entire team.
Accomplishments that we're proud of
It was very satisfying to see all of our technologies seamlessly integrate themselves into one cohesive application. We were also very proud of customizing the frontend in such a short amount of time to make sure that the user is continuously engaged.
What we learned
We learned about the importance of constant communication between the front-end and back-end software engineers. At first, we neglected this aspect of the project as we figured that we would deal with the merge conflicts when we tried to integrate everything. But, we quickly realized how difficult it is to continue adding new features to your application without setting clear expectations. By doing so, we gradually learned to clearly explain how we wanted certain functions laid out so that it could be easily handled from the front end and the back end perspective.
We also learned a lot of technical skills in the realm of UI and firebase especially. These skills will be invaluable for us going forward.
What's next for Menty
We want to start thinking about optimizations we can make to our FireStore database architecture to make our project more scalable. We also want to add more rewards and incentives for are users to use their points on. We would also like to research better tasks to add to the website and add an option for the user to enter their own tasks. Finally, we would like to implement a CI/CD pipeline to enable automation with the addition of new features.
Log in or sign up for Devpost to join the conversation.