During quarantine, many of us have felt feelings of loneliness, anxiety, and depression. At times, all three of us, at one point in time, we didn’t feel like interacting with anyone else. For this reason, to help us, and others, we created Animo.
What it does
Animois a chatbot you interact through a React web app.
How we built it
We used python for the backend code using libraries such as tensorflow to train our model, and used the Flask Python library to create the API. This backend is hosted on digital ocean.
On the front end, we used React.js to provide a dynamic website with a great visual aesthetic. By using React, we were able to use an open source dependency called “react-chat-widget” which enabled us to have a user to user chat like interface. To enable access to the backend, we used the “axios” dependency to perform get requests on the Flask backend. We used a dynamic route that was programmed to be the content of our message, which allowed us to simply transfer the user input from our front end to our back end seamlessly. Once in our backend, we are able to call a “predict” function from our machine learning model and send the predicted text through the Get route.
Challenges we ran into
We ran into many challenges focusing on running the app locally vs. on the server, both on the front and the backend, but more so on the backend. First we tried to use heroku as our backend, but after fixing several dependency errors, we found out that our project was too large for Heroku. Then we decided to move to Digital Ocean. However, as we kept improving our chatbot, we had to keep updating the requirements. Because of this, it became dependency hell for the server. We eventually had to run the backend locally to record our submission video due to the time crunch.
Accomplishments that we're proud of
We are very proud of the work that each one of our team members was able to do. All three of us specialized and did a separate part of the project. One of us was on the front end, the other was on the backend/hosting, and the other was making the machine learning model. Our delegation of work allowed us to be each an efficient part of a moving machine.
What we learned
Git source control React.js components AI and ML Hosting our backend and frontend on servers
What's next for Mental Heath Chatbot
Host the backend on the server so others can try it out! Have a better frontend experience Have a way for the user to download the chat conversation and send it to therapists via email and/or the website