📋 Table of Contents
🤖 Introduction
Kalrav is a web-based application equipped with a Natural Language Processing (NLP) model for continuous mental health monitoring. It enables patients to regularly log their thoughts, feelings, and experiences, providing immediate responses and generating mental health insights. The application aims to support mental health professionals in tracking patient progress and ensuring timely interventions when necessary.
⚙️ Tech Stack
- Frontend: Vite, React.js, TailwindCSS
- Backend: NodeJS, Express.js
- Database: MongoDB
- AI/NLP: Python, various NLP libraries and tools
🔋 Features
-
Patient Interface:
- Chat interface for patients to log their thoughts, feelings, and experiences in text form.
- Immediate responses to provide comfort.
- Automatic generation of mental health insights and periodic progress reports.
-
Backend NLP Model:
- Polarity Detection: Identifies emotional polarity (positive, neutral, or negative) and tracks sentiment trends over time.
- Keyword Extraction (NER): Extracts key mental health-related phrases or entities, providing insights into recurring or significant concerns.
- Concern Classification: Categorizes concerns into predefined mental health issues such as Anxiety, Depression, Stress, Insomnia, or Eating Disorders.
- Intensity Scoring: Assigns a severity score (1-10) based on linguistic and contextual cues, indicating the seriousness of the user’s concerns.
- Timeline-Based Sentiment Shift Analysis: Evaluates how sentiment, concerns, and intensity have evolved over a specified time period.
-
Therapist Dashboard:
- Web-based admin interface for mental health professionals.
- View patient reports containing time-series graphs, sentiment trends, and detailed analysis of the patient’s mental state.
- Download reports in standardized formats (e.g., PDF) for further review.
- Monitor patients' ongoing mental health and their progress or regression over time.
-
Emergency Alert System:
- Threshold-based alert mechanism.
- If the intensity score exceeds a critical level, the system triggers an alert to the therapist and emergency contacts designated by the patient.
- Ensures timely intervention in situations involving potential self-harm or mental health crises.
🔗 Links
👨💻 Collaborators
Repository Contribution Guidelines
-
Reporting Issues
- Any bug, issue, feature request, etc., must be raised in the issues section of GitHub.
- Please do not send them as WhatsApp chats.
- Describe in detail the issue with pictures.
- The issues will be assigned or labelled accordingly.
-
Forking the Repository
-
Each developer should fork the main repository instead of cloning it directly (Not Applicable for Kaushik) and then create and maintain a single local copy of the fork (on your local machine).
git clone <repo-url>
wherein repo URL is of your forked copy (Do not clone directly).
-
Creating Branches
- Each developer should create a new branch in the format:
--> <name>/<task working upon>
- Examples:
- teja/landingpage
- kaushik/named-entity-recognition
- soham/mail-feature
- Each developer should make such branches and make changes only in those branches.
- After all changes are done, push only that branch into the GitHub Repository.
git push origin <Branch Name>
- Do not make changes to the main branch in your repo or on the GitHub repo.
- If your branch solves some bug or addresses a feature request, make a Pull Request (PR) and mention the issue number it fixes. You can find some resources on how to do it easily online.
-
Syncing with Main Branch
- Whenever you are working on the main branch, pull the changes using the below command, as others might have merged some of their branches. Follow these steps:
- Go to GitHub to your forked copy of your repo and then "sync" the repo to bring in the latest changes. Next, go to your local copy of the repo and do the following:
-
git checkout main
-
git pull origin main
-
git checkout <branch-name>
-
git merge main
- Please follow the above steps every time you start working irrespective of changes or not. It will ensure that the latest changes are present in your changes and help you fix any conflicts while merging or in the later stages.