Inspiration

Vi originally inspired this project and teamed up with Tracy and Angelyn to make this possible. Through personal experiences with mental health and passion for caring for others, this team was determined to do the best they could do to make a web app that could spread mental health awareness and potentially make a difference in someone's life. The team originally had plans to implement complex functionalities such as an AI chatbox named "Moodie," which could act as the user's literal assistant throughout the web app, and make the website responsive to mood checks by making the page change colours based on the user's mood. This is inspired by modern apps using colour psychology to connect users' emotions with visuals. Also, the user would be able to conduct mood checks and see their overall mood on a calendar.

What it does

Allows users to create a profile and record daily journals with a focus on mental health.

How we built it

Tech Stack Used: Flask (Python), React (JS), PostgreSQL

Project Requirements

Web Server: Our project has a backend API coded in Flask, as well as frontend in React. The Flask backend and React frontend have been containerized separately as well! Database: We have a PostgreSQL Database for our project, which is also containerized separately. Containers: We have five total containers (React frontend, Flask backend, nginx certbot, Postgres, and cadvisor). CI/CD: We use Github Actions for auto-deploying to AWS, containerizing, and linting when we make pull requests and pushes to the main branch. Monitoring: We used a Cadvisor container to monitor the state of our website. Deployment: We are deployed to AWS on mentalhealthme.tech using nginx reverse proxy.

Challenges we ran into

  • The major challenge we ran into was properly containerizing the frontend and backend folders so that it would compile on Amazon's side. We were able to solve this through looking back at Trainual content as well as getting help from our pod leader.
  • Another challenge we faced after containerizing the folders was configuring the nginx to work properly when redirecting to our React frontend when using our production docker-compose file as well as our development one. We succeeded in solving this issue after configuring React to build during the containerizing process.
  • We also had challenges initializing and containerizing the PostgreSQL database.

Accomplishments that we're proud of

We're proud of the fact that by working together, we were able to apply the knowledge we learned as production engineering fellows to create a final project. As it was our first time making a containerized full-stack application independently, we were able to learn a lot about Docker, Nginx, and containers.

What we learned

When connecting the frontend and backend, we were able to learn a lot about React and Flask, more specifically, how to send information between the two ends via authenticated requests. This project has definitely sharpened our full-stack skills, as we often had to debug errors that arose from faulty connections. We also gain more knowledge on the Linux terminal and Docker commands, as troubleshooting issues gave us a lot of practice in using commands to get the things we needed.

What's next for Mental Health Assistant

If given more time, something that our team was looking forward to implementing was using Prometheus and Grafana to build interactive dashboards to simplify monitoring for our site.

Share this project:

Updates