Alleviate - DigitalOcean App Platform Hackathon
Tags: dohackathon, flutter, docker, showdev
Published: 2021-01-09 12:43:54

## What I built

Alleviate is a personal journal/blogging app, inspired by [Reflectly](https://reflectly.app/). Users can add their daily life, as a blog that would stay just personally with you. This could be shared with a therapist if you'd like and this would definitely help users overcome any sort of phobia or stress that you might be facing, as it would more likely for therapists to help you if you write it down as a blog or a journal while it's still fresh in your mind.

### Category Submission:
 
Program for the People


### App Link
https://dohack-aswsx.ondigitalocean.app/


### Screenshots

![Load Page](https://dev-to-uploads.s3.amazonaws.com/i/fibgtdzohne55qez63kx.png) 

![Home Page](https://dev-to-uploads.s3.amazonaws.com/i/6y7poo2x8zoh57ifavab.png)

![Stats](https://dev-to-uploads.s3.amazonaws.com/i/g29isrs9e6lgxnzyxdza.png)

![Blog Page](https://dev-to-uploads.s3.amazonaws.com/i/b9q2e0jh7keygii1p829.png)

![Voice Note](https://dev-to-uploads.s3.amazonaws.com/i/snnohm7h1vbvplkdi19r.png)

![User](https://dev-to-uploads.s3.amazonaws.com/i/s4ironqnvsoeowtsostv.png)


### Description

Alleviate is an Android app that will help users relax by allowing them to write down their daily happenings. The app also allows a voice notes feature, as it is proven that emotions are better expressed through the mouth, and if the user has a therapist, this would help the therapist understand better. As per a daily emotional basis, statistical data would be generated to determine the user's overall mood and behaviour on a weekly and monthly basis.
#### Features
* Users shall be greeted and displayed with a daily motivational quote. Though many people do not read such quotes, it is highly observed that it somehow does get in your head deep down, somewhere we all don't even realize and know.

* Users can add their daily blogs, via text as well as also using their microphone. It is more likely observed that speaking your emotions out really helps in comparison to texting.

* Users also have the provision to add their daily mood, and statistical data will be generated based on the user's mood per week.

The Android app is built and deployed on Digital Ocean's App Platform and can be downloaded from the above link attached or [here](https://dohack-aswsx.ondigitalocean.app/).

![DO Caddy](https://dev-to-uploads.s3.amazonaws.com/i/k75tbxpeum8kwzn88372.PNG)

### Link to Source Code

{% github ameysunu/dohack %}

### Permissive License
[MIT License](https://github.com/ameysunu/dohack/blob/master/LICENSE)

## Background
The main inspiration for this app came from people's moods during the pandemic and the app [Reflectly](https://reflectly.app). Many people out there had so much they needed to express especially staying at home was really difficult for some of them. It's scientifically proven that when you speak out your feelings to someone, it definitely helps you a lot. So, I thought why not jot it down instead, just for your eyes. This would definitely help users a lot, and you can also view these blogs later to just remember that you had more terrible days before. 

### How I built it 
The app is built on Flutter for Android Devices and Firebase Firestore for database management. I have also integrated Google Cloud Speech to Text API for the voice note feature and Google Sign-In for a seamless user login. 
Initially, when I started on the project, I wasn't aware that the Digital Ocean App Platform never supported Flutter, and that devastated me. But through documentation, I figured out that the App Platform did support Docker and I could use Docker to build and deploy my apk with a web server. Hence, I prepared the Dockerfile and resources, but I had a challenge here, that was deploying the apk to a web server. I had experience with using Nginx but that wasn't turning out to be fruitful, so I decided to deploy it via Caddy, but I wasn't familiar at all with Caddy. Hence Caddy was something new that I learned.
After everything was set up, App Platform did everything for me, right from building to deploying, and it's the best CI/CD, I have ever used and the documentation to support it all just tops everything.


### Additional Resources/Info

While deploying the app, it's highly recommended to take the 2 GB RAM | 1 vCPU and above configuration. The deploying can take from 15-18 minutes, hence do keep patience and also feel free to contribute to my repository.