As said by Blaise Pascal, "Clarity of mind means clarity of passion" and one's passion make their life worth living. Inspired by this thought and taking into account the state of mental health in today's date, we decided to work on something that we would find amazing to use. What if you wanted to remember how you felt a week or two ago? What if you want to know what crossed your mind then?
Presenting clarity, your AI journaling assistant. ✨
🙋 How does it work?
It's simple! Follow these steps:
- Visit the app and you can pen down something, anything.
- Follow your emotions, just don't hesitate to dive deep down into it.
- Write down your emotions truly and that's it!
- Click on submit and it will be stored as a little secret between us.
- Want to know about your state of your mind few days back? Don't worry we will show you.
- Want to share it with someone else or your therapist? We have that too!
🌐 Where can I use it?
Find us on clarity-frontend.herokuapp.com!
Our model has over 13M parameters, utilizing a bi-directional LSTM model built with TensorFlow Keras and an embedding matrix from GloVe dataset's 6B vectors of 300 dimensions. It has been trained on a TPU with accuracy and speed in mind, and provides sentiment analysis for 13 classes of moods of an average paragraph in <1 second.
All our deployments are containerized using Docker and images are used to deploy revisions, allowing for easy traffic management, A/B testing and scalability. Cloud SQL and Cloud Run instances on GCP are configured to handle hundreds of current requests when required and be highly fail-safe.
The project is deployed automatically from our codebase on GitHub to GCP Cloud Run seamlessly.
All our code is written with
async in mind, allowing concurrency for the best performance with the most efficiency.
👨🏭 Who are we?
💻 Tech stack
clarity has a ReactJS frontend ⚛️ hosted with Heroku, and a FastAPI backend backed by PostgreSQL hosted on Google Cloud Platform. The UI is based on React, while the Cloud Run backend uses
asyncpg for communicating with Cloud SQL. 💽
👨💻 Life's easy for our contributors
- Our project README contains build instructions and information on how to get started. ⛏️
- Our project wiki contains detailed documentation about every aspect of the project. 📖
- We have a Code of Conduct in place. 🔧
- Anyone opening an issue or pull request are guided with our templates. 🐞
- We have style guidelines in place to keep a clean codebase. We have automatic linting set up using GitHub Actions to check all pull requests for syntax and correct labelling. Instructions on running the linter locally can be found in the README. 🖌️
‼️ Just tell me about the ML!
Not to fret, the entirety of
ml module is documented at the respective README (since it's quite large) and some more on the wiki. What you need to know - clone the repo, copy the folder, use it as an API. Et voilà!
🆕 What did we learn?
- Ajitesh worked on building the backend with FastAPI for the first time. He also learnt and worked with PostgreSQL in the process. 🐘
- Preet learnt how to write SCSS for her frontend styling. She worked on building the frontend and integrating the endpoints. 🔚
- Ankit implemented the machine learning model, making it into a module for easy imports. He also worked on integrating the backend in GCP Cloud Run. 🏃💨
🔜 What's next?
- Integrate our service with direct access to medical professionals. 👨⚕️
- Add analysis of more features to give more information on emotions expressed. 🤗
- Provide Spotify recommendations according to emotion analysis. 💬
Where we want to be:
- An integrated platform for therapists, patients and people willing to track their mental state. 🧑🏿🤝🧑🏿
📜 Truly open-source
This project is released under a free and open-source software license, Apache License 2.0 or later (LICENSE or https://www.apache.org/licenses/LICENSE-2.0). The documentation is also released under a free documentation license, namely the GFDL v1.3 license or later.