M Fiqri

Kalma

A mental health application

Team of 3

Open repository

Overview

Mental illnesses such as stress, anxiety, and depression are becoming a huge problem globally, especially among teenagers. In Indonesia, more than 90% people who has mental issues still do not know how to receive proper treatment, this will lead majority of them suffer without any help.

From the problem above, Kalma takes a small step to help teenagers to manage their mental health conditions. By offering features like self-screening (without self diagnose), self-management, and articles about mental health makes mental health support becomes more approachable and a natural part of everyday life, but isn't meant to replace professional treatments.

Project Goals

This project aims to create a platform so teenagers can manage their mental health conditions with easy way. Here are some functionalities of this application:

  • Give access for teenagers to screen their mental health status without giving self-diagnose result using DASS-Y method.
  • Provide a platform that shows articles about mental health informations.
  • Create self-management feature like Journaling, Breathing, and Music Meditation to help teenagers manage their mental health issues in simple way.

Features

Self-Screening

One of the key feature of Kalma is user able to do independently evaluates or measures their mental health condition using DASS-Y method. This will allow user to know each of their condition score (depression, anxiety, stress), if there's one of condition shows "extremely severe" score, the system will suggest user to see psychologist right away without giving any self-diagnose.

Self-Management

Kalma provides simple effective way for teenagers to manage their mental health condition by using self-management feature. Self-management consist of Music Meditation to make mind relaxed by listening to nature or instrumental music, Journaling to express and reflect user's emotions, and Breathing Meditation exercise to reduce stress.

Articles

Kalma also provides list of educational articles about mental health, this article can make user aware more about mental health and the way to manage it.

Other Features

Additionally, there are some features beside main features above, like dashboard for admin to manage articles and music data, authentication page for both user and admin, and user's journal list for psychologist to understand user's problem before seeing psychologist in person through journal that user has written, but this feature only occurs if user allows their journal's data is to be read by psychologist.

Tech Stack

Kalma has various tech stacks since this project has mobile application for user, web application for admin and psychologist, and backend to provide services for both mobile app and web app. Here are tech stacks we used for this project:

  • Flutter: a UI framework to develop Kalma mobile application.
  • Express.js: a Node.js server-side library to develop Kalma Rest API.
  • Next.js: a React-based framework for building Kalma web application.
  • TypeScript: a strongly typed programming language that was used to develop Kalma web app and backend.
  • Prisma: an ORM tool that simplifies Kalma database management.
  • Tanstack Query: a library that was used to simplify data fetching and caching in Kalma web app.
  • Zustand: a library to manage states in Kalma web app.
  • i18next: a library for internalization that was used to support multi languange in Kalma app.

My Role

As a Fullstack Developer, I was responsible for the development of Kalma Rest API (backend) and Kalma web app for admin and psychologist. Here are the key tasks I worked on:

  • Designed database schema relations and created detailed documentation using dbdiagram.io
  • Implemented 31 Rest API endpoints using three-tier architecture and provided detailed API documentations
  • Developed an algorithm for self-screening score calculation based on the DASS-Y method
  • Optimized APIs by implementing server-side pagination, filtering, and search
  • Implemented authentication middleware with JWT, refresh tokens, and forget and reset password
  • Implemented email service for user's verification using nodemailer
  • Implemented server-side validation schema using Zod
  • Implemented dashboard ui for admin to manage articles and music data, also user's journal list for psychologist to understand user's problem
  • Integrated Cloudinary for storing music files and i18next for multi-language support

App Preview

Note: to see full image preview please click the image

Attribution

Back to projects