I was inspired to create Therapeasy because, as someone who struggles with anxiety, I found it weird that there weren't more personalized therapy applications that were also free. I felt like it was unfair to people suffering from anxiety or depression who were in economic states where they couldn't necessarily afford therapy for themselves.

What it does

Therapeasy is a platform that aims to act as a hub for managing stress, anxiety, or any other mental illness. Therapeasy features a chat section in which users are asked questions by a bot. Based on how the user answers these questions, specific exercises are curated that are meant to tackle those specific aspects. After completion, points are added to the user's account, which can be viewed in the achievements page.

How I built it

For the frontend, I utilized bootstrap in order to create a unique experience. As far as the backend goes, core and c# were used. I implemented a signalR hub that uses a complex dialogue tree to choose what should be said to the user next, all user input is added into a ticket class, which includes information like the time it was created, the activity associated with it and general stuff like that. When the user is redirected to their activity page, that ticket class is scraped and represented in a carousel of cards that, upon completion, update the User's extended identity class to increase their unique score parameter by 1. Entity framework is used to keep users and tickets on a database.

Challenges I ran into

This project has easily been my biggest frontend centered project so far, and because of that I ran into many issues that could almost definitely be solved quicker by a more experienced frontend dev. To begin with, the carousel creation script was flawed in the sense that the first few times nothing would be created. I later found out that this was because I kept the active class in every card during the code generation script. This was a very simple bug, but because I wasn't used to frontend issues it definitely took awhile to realize. The second biggest challenge was with ticket updating. Initially the activity would be created, but never actually bound to the ticket, I spent a good chunk of last night trying to find out why. In fact, I was done with this project 4 hours ago, I wanted to sleep so I just quit. However I woke up before the deadline with a brand new wave of inspiration, and here we are. I eventually found out that the signalR websocket had a data leak, where it would manage and mix multiple tickets at the same time. After patching this up and moving the activity generator to the get request of the activity page, everything was back to working.

Accomplishments that I'm proud of

I'm extremely happy with how everything looks. If you go back to my very first hackathon project that I submitted, you'll see that I've definitely gone a long way as far as design goes. I'm also proud of how well the signalR hub handles the chat requests, and how it's dialogue tree works. Finally, I am immensely proud that the card carousel works out, it's one of those things that I thought of right before I made it impulsively, and I am very happy with how it turned out.

What I learned

I learnt a lot about the fundamentals of frontend design(margins, padding, etc) along with how to manage data leaks in a hub. I also learnt a lot about the process of writing a bot algorithm, with dynamic dialogue trees that lean heavy on user input.

What's next for Therapeasy

In the future, I hope to further extrapolate the dialogue tree, while adding more diagnosis algorithms and base strategies for new diagnoses. I also want to add more complex activity pages, implementing a markup language where timers for breathing activities can be set just by writing {timer:30}. Finally, I want to migrate all of the databases to an external db, and be able to publish the website so it can actually be used by my target audience.

Built With

Share this project: