Inspiration
Everyone has had that feeling in their life – to feel really determined to start working towards a goal, just to abandon it and give up after five days. What could help make one's habit actually stick? Constant prompting, progress tracking, and a positive feedback loop. The best motivation is progress – by seeing what they've done towards their goal, one will have more motivation to complete it. What better way to record all this information than through a journal? Study showed that journalling has a good correlation with reducing stress, in addition, it is also the perfect time for them to reflect, and for the app to record goal progress.
What it does
BetterJournal is an application that smartly prompts the user to journal about their day and uses Natural Language Processing to save their progress towards their pre-set goals. The algorithm is able to determine whether they have completed the due tasks and how well they have completed it – this information is then sent back to the user in a feedback loop via the form of progress reports or action items. For example, if the user's goal is to read 15min for every day of the month, BetterJournal would prompt the user to journal about reading, provide a insightful report powered by TiDB serverless on their progress towards the reading goal, and provide a quick button to open the 'Books' app, for example. At the end of each month, BetterJournal will also generate a monthly progress newsletter for the user to inspect their progress.
How we built it
BetterJournal uses a django backend to power NLP on the journal entries. This operation is supported by the bart-large-mnli library. As the model identifies the tasks present and not present in the user's journal, it stores the information in the TiDB database which tracks the goal completion status for the user. Finally, this information is sent towards the front-end built on Flutter, where the user can journal and see insights on their progress.
Challenges we ran into
During the development of BetterJournal, it was very difficult to train the algorithm to properly recognize the tasks implicitly mentioned by the users. For example, it was not easy for the model to classify "lifting 135lb today" as "workout". Thankfully, we got over this constraint by training the model better.
Accomplishments that we're proud of
We are proud that we have identified an area of personal growth that can directly impact one's habit formation, and accordingly designed a program to help.
What's next for BetterJournal
More features are to be implemented for BetterJournal to make the feedback loop of habit formation more complete. For example, we will implement the monthly progress check, more insights on goal feedback for the user, and so on.

Log in or sign up for Devpost to join the conversation.