Amidst the global pandemic, isolation has brought an increased emphasis on mental health as people are limited to staying indoors and required to limit social interaction. According to a recent study done by CTV, about 16% of Canadians said their mental health is worse or somewhat worse according to 24% of people than it was in April during the beginning of the pandemic.
What it does
The proposed solution is an online journal system for users to track their feelings. This is an alternative to a therapist which is expensive for the average person and will serve as a mental health monitoring system.
To gain access to the mental health resources associated with the “Sentimint” app, a new user must register by providing a username, actual name, address and phone number. “Student” or “Employee” users are also required to submit their student or employee identification number. Institutions register by submitting an institution name, the name of an institution representative such as a H.R. Manager or Guidance counselor and a list of associated members. The list of associated members should include name and identification number.
Although the real name of the user is known by the database, it is only used to process an emergency mental health assistance request. In case of a mental health crisis, the sentiment app will provide instant referral to local paramedic service. This will act like a final resort suicide prevention service, where the instantiation of this service will be provided by an easy to access emergency button in the journaling section of the application.
Once registered, a user can create a journal entry, where the user can write a short 250-word blurb about any personal issues they may have experienced throughout the day. After each journal entry, the user will be required to complete a sentiment selection, where the user selects the sentiment that best describes their current mental state. These possible sentiment selections include joy, trust, fear, surprise, sadness, disgust and anticipation. Based on this assessment, the app will provide the most appropriate mental health resources including both self-help articles, quote of the day and physical exercises routines. Additionally, users will be able to access their previous journal entries arranged chronologically by data.
Furthermore, if the users decide that the “mental self-help” suggestions are not sufficient, they can request the advice of professional therapists facilitated through the “Paid Services” section. Users can sift through and select an appropriate therapist with whom they can book one-on-one therapy sessions. Financial transactions will be initialized by the app before one-to-one therapy sessions and executed by a third-party e-commerce solution such as PayPal.
How we built it
The Sentiment web application was built in 2 phases. The first phase comprised of building Use Cases (Textual & UML), Domain Modelling and User Interface (UI) Drafts. The second phase comprised of creating Architecture Models, Design Class Diagrams, State Diagrams and Sequence Diagrams.
The process model used in this project was the waterfall model. Waterfall implies, each development phase is laid out sequentially. This provided a strong structure of stages that allowed for better division, management and execution of tasks amongst group members throughout the duration of the project.
Making note of time estimates as well as earliest and latest start days was hugely beneficial in providing timelines and due dates for major components of the project. Careful selection of slack days allowed for a "time buffer" to be created, as it was seen later in implementation that the "back-end" functionality would take much longer than expected. Having the additional slack days allowed for completion of the implementation without affecting the time allocated for System Testing.
Challenges we ran into
The challenges arose mostly during the front-end development phase and with Git commands during switching between branches and merging the changes onto the master branch.
There were challenges at times with Git commands such as 'git checkout' and merging conflicts. The master branch cloning failed whenever two separate branches made edits to the same line in a file, or when a file was deleted in one branch but edited in the other.
Accomplishments that we're proud of
The project plan, process models and diagrams created during phases 1 and 2 played vital roles in the success of the project and thus led to a structured plan to help culminate the project successfully. A disciplined approach to respecting the project plan allowed for an increase in slack days. Implementing the industry practices in a Software Development Life Cycle (SDLC) driven-project, led to a well structured project that was executed in a timely fashion.
What we learnt
The slack days were very important and vital during the execution of this app development process, as there was a lot of learning involved in the project as well as working with new technologies as well. Examples of this included using additional days/time to setup and use GitLab, and to set up vital components like various branches and SSH keys.
What's next for Sentimint
We plan to have Sentimint deployed and scaled on a cloud based infrastructure such as DigitalOcean in the near future.