Coder Social home page Coder Social logo

mindmate's Introduction

MindMate

A mental health chat assistant

Deploy Link : MindMate

Our project MindMate got 1st Position 😀 in it 👇️

Mindmate is a mental health AI powered chat assistant that guides and helps you to improve your mental health. Mindmate website provides a user-friendly UI to learn about mental health.

Features

  • AI chat assistant to take guidance about mental health.
  • Analyse your mental health over a period of time.
  • Get an Indication about your mental health condition with a graphical visualization.
  • Editor's compiled articles to read and educate about mental health problems.
  • Get emails from time to time with suggestions to improve your mental health.

Tech

System Design

MindMate application runs on 4 server

  • Frontend
  • Backend
  • WebSocket Server
  • Email Server des

Tech stack

  • Frontend
    • React JS
    • Tailwind
  • Backend
    • Node Js
    • Express Js
    • Gemini (Gen AI)
    • Web Sockets
    • Node Mailer
  • Tools
    • Vercel
    • Render
    • Mongo DB
    • Firebase

How to Setup Locally?

Firebase Setup

  1. Setup a new Firebase project
  2. Add a Web App
  3. Go to Authentication -> Sign-in Method
  4. Enable Email/Password, Gmail as Provider
  5. Go to the Project Settings of Web App and get your firebaseConfig object
  6. Create .env in Frontend folder and add firebaseConfig as per .env.sample file
  7. In the service accounts section, Generate new private key (json object).
  8. Create .env in Backend folder and add new private key as per .env.sample file
  9. Fill rest .env as per .env.sample files

Gemini Setup

  • Get your Gemini (by Google) API_KEY from (https://ai.google.dev) and put in Backend .env as per .env.sample

MongoDB Setup

  • Create a MongoDB Atlas (https://www.mongodb.com) account and get your URI and put in Backend .env as per .env.sample

Create Connection amongst Servers

  • Put Url for Websocketserver in Backend .env (ex- WEBSOCKET_SERVER=ws://localhost:8802)
  • Put Url for Backend and Websocketserver in Frontend .env (ex- REACT_APP_API_LINK=http://localhost:8800 and REACT_APP_WS_LINK=ws://localhost:8802)

Scripts to Install and Run

  1. Need to have Node.js installed
  2. Go to the Backend, Frontend, Websockerserver folder seperately and run for each npm install
  3. Run Backend by, npm run dev or npm start
  4. Run Frontend by, npm start
  5. Run Websocketserver by, node index.js

Website Preview

HomePage

83dae728-5f7f-48c7-b2f4-0dccaacfec55

Login

5e8cb463-c116-4eff-bc96-7a52eb0a1a72

Analysis

a6145724-1519-4073-9b43-17f308494b68 cbdb3501-5a2c-4c2e-ae05-bf25973aa334

AI Chat

1538b7b1-41b3-4734-b74b-0092750f47df

mindmate's People

Contributors

aatmajajoshi avatar afeefuddin avatar algovengers avatar asymtode712 avatar coderswarup avatar mahak-juriani avatar mystery-shashwat avatar ne0sky avatar niharika0104 avatar panam1916 avatar rohitt24k avatar sameer413 avatar sanmarg avatar saranshbangar avatar subharthihazra avatar suhanipaliwal avatar swastik19nit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mindmate's Issues

Implement forget password feature

Description:

The application currently lacks the "Forgot Password" feature, which is crucial for user account recovery. This issue is to implement the necessary pages and functionality required for the "Forgot Password" feature.

Tasks:

  1. Create Forgot Password Page: Develop a new page or modal for the "Forgot Password" functionality.

    • Steps to Implement:
      1. Design the user interface for entering email addresses for password reset requests.
      2. Implement the frontend components for the Forgot Password page/modal.
    • Expected Behavior: Users should be able to access the Forgot Password page/modal to initiate the password reset process.
  2. Backend Logic for Password Reset: Develop backend logic to handle password reset requests and send reset instructions to the user's email.

    • Steps to Implement:
      1. Define API endpoints or backend routes to handle password reset requests.
      2. Implement logic to generate and store password reset tokens securely.
      3. Integrate with email services to send password reset instructions to users.
    • Expected Behavior: Upon submitting a password reset request, users should receive instructions on how to reset their passwords via email.

It Should go next line when we do shift + Enter

data in the text area is not formatted
when we do alt + enter it should break one line and start from next line
also when the response of the AI is in code format we cant distinguish between the code and the text

@algovengers please assign me this issue

Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.

Recommendations:

Add issues of varying difficulty to the repo often. you must add the tag gssoc, Level 1, Level 2, Level 3 good first issue etc.
How we cacluclate the Scores on Leaderboard: Every PR one point
Level 1: 10 points
Level 2: 25 points
Level 3: 45 points
Try to add some documentation issues as well it would be easy for beginner contributor to explore opensource through your repo.
Generate issues even if you plan on solving them, so the repository appears as active.
Contribute/commit often to the repo so it does not go stale.
Reference https://github.com/Recode-Hive/Stackoverflow-Analysis/issues

Need of Voice Prompt

I feel that it would be much better if there would be an option to speak and then the response text would be generated as well i.e. both text and speech prompt. I would like to work upon this issue.

Enhancement: Hover Effect and Blinking Cursor for Improved Interaction

Screenshot (12)
In this enhancement request, I propose the addition of hover effects and a blinking cursor to enhance the user interaction on our GitHub repository.

Hover Effect:
Implementing hover effects can provide visual feedback to users when they interact with elements on the page. This enhancement aims to improve the user experience by adding subtle animations or changes in appearance when users hover over clickable elements such as buttons, links, or navigation items. By adding hover effects, we can make the interface more engaging and intuitive, helping users to understand the interactive elements better.

Blinking Cursor:
Introducing a blinking cursor can also improve user interaction, especially in input fields or text areas. The blinking cursor serves as a visual indicator of the active input focus, making it easier for users to identify where they can type or enter text. This enhancement will ensure that users have clear visual feedback when interacting with input fields, enhancing the usability and accessibility of our platform.

Updating Login page and login card

Login page does not seem that interactive and attractive can u assign me this issue .I am a GSSOC'24 Contributor I will try my best to update it. Thank you

FOOTER REDESIGN AND CONTACT US PAGE

@subharthihazra Whole website is looking very nice but footer is not that much good,
and also in website contact us section is missing.

assign this issue to me i can redesign footer section and create responsive contact us page .

i want to work on this issue under GSSoC'24.

Screenshot 2024-05-13 165502

[FEATURE] Daily Affirmations and Inspirational Quotes

Description

I believe that incorporating daily affirmations, motivational quotes, and mindfulness exercises can greatly enhance the user experience and contribute to a more positive and supportive environment

Feature Details

  1. As soon as the user logs in, the user should see the positive affirmation, should be on self-love, confidence and resiliance.
  2. Can create a different section which includes quotes and affirmations.

Would like to work on this feature under GSSoC '24. Request you to assign this task to me :)

Add templates for issues

Issue templates are very helpful for a collaboration repo. When users identify a bug or want to add a new feature, you can provide templates so you can collect all the pertinent information you need to fix a bug or add a new feature.

We recommend creating a “Report Bug” and “Feature Request” issue template.
you can refer this: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

Some suggested prompts/questions you can add to a “Report Bug” template are:

Briefly describe the bug
What is the expected behavior?
Please provide step by step instructions on how to reproduce the bug
Some suggested prompts/questions you can add to a “Feature Request” issue template are:

Briefly describe your feature request
What problem is this feature trying to solve?
How do we know when the feature is complete?

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/issues/new/choose
Click on Get Started button and copy the template to yours.

Adding Animation

  • Your landing page already looks fantastic, but incorporating animations could make it even more captivating. With my experience in this area, I'm eager to contribute to this enhancement.
  • If you could assign me this task under GSSOC24, I would be thrilled to work on it. Thank you for considering my offer to improve Vite's appeal!

Learn.md

Learn repos should have a LEARN.md file to teach student how to build your project step by step. You can explain how to build your project with text, code snippets, images, or even short (5 minute) long video lessons. As the maintainer of a Learn repo, the LEARN.md file requires you to think critically about how to explain the building of your project and how to also make it engaging. We don't expect you to be an expert teacher, but we would like you to reflect on how difficult it was to get to your level of knowledge, and then provide friendly guidance to help other students to learn.

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/blob/main/Learn.md

Filter genuine email

Security Feature

In your application anyone can enter using temporary or disposable email.
I will add a feature so that no one could create an account using temporary or disposable email.
It will allow only genuine users in your database.
It will help to avoid any bot.
Assign me this work under GSSoC24, I will implement it.

Improvement of footer design

The footer looks can be improved by adding icons and images.
image
Please assign me this issue under Gssoc'24 so that I can work on it

Add Topics

In GSSoC'24, GitHub Topics will help the discoverability of your project.

I see that you already have great topics on your repository!
I would recommend adding the name of the company like the software you use to build like "vs-code, ghdesktop" to improve your discoverability.

If you are happy with the topics you have, feel free to close this issue. 👍

Automated Greeting Workflow

I propose to create a GitHub workflow named "Greetings". This workflow will automatically greet users who create new issues or pull requests in this repository. The Greeting will look like "Hi there! Thanks for opening this issue. We appreciate your contribution to this open-source project. We aim to respond or assign your issue as soon as possible."

Please assign this issue to me

[UI Enhancement] - Hero section design can be improvised.

The Hero section of website MindMate is not very optimized with respect to UI/UX and also does not convey much information about the application itself. It can improved with some more attractive HEADING and Sub-heading and some other small things also.

I would love to work on this issue as a GSSoC'24 Contributor. Looking forward for your response.

IMAGE OF HERO SECTION :
image

Missing Code of Conduct File in Repository

Currently, the repository lacks a Code of Conduct file, which is an essential component for fostering a healthy and inclusive open-source community. A Code of Conduct serves as a guideline for expected behaviour, ensuring that contributors and participants feel safe, respected, and valued within our community space.

Please assign this issue to me, so i can work towards it.

Confirm password field is missing

Issue Description

Summary:
The registration form is missing a "Confirm Password" field, which is necessary for users to confirm their password during registration.

Expected Behavior:
A "Confirm Password" field should be included in the registration form to ensure users input their passwords accurately.

Current Behavior:
The registration form lacks a "Confirm Password" field, potentially leading to user input errors and confusion during the registration process.

Steps to Reproduce

  1. Navigate to the registration page.
  2. Observe the absence of a "Confirm Password" field in the registration form.

Proposed Solution

  1. Add "Confirm Password" Field:
    • Modify the registration form template to include an input field for confirming the password.
    • I will also verify that the passwords entered by users meet the required strength criteria.

Girlscript Summer of Code Introduction/Tracking

👋 Hi @subharthihazra ,
am Sanjay, program Manager Girlscript Summer of Code. I'll be collaborating with you on preparing your repo for GSSoC'24 Program

Why are these changes required?
After Analysing last year's contributions and feedback it would be great for students to have a couple of standard readme files on the repo to understand what the project is all about and some issues detailing what they can contribute. This will help you to see increased engagement in your repository as well.

As mentioned students get a chance to learn step by step, how to build this project as well as invite mentors to collaborate and add features to this repo. I will generate issues, which will provide guidance on how to prepare your repo for Girlscript summer of code 2024 on 10th May.

This issue will serve as a tracking issue to track all issues related to GSSoC'24. I recommend creating a new branch for every issue and opening a pull request to track changes so we can effectively collaborate with each other and merge changes when you and I feel like those changes are ready to be merged on your primary branch.

If you have any questions or concerns, please feel free to leave a comment on this issue or any of the other issues that are generated.

I look forward to working with you :octocat:

Add GitHub Desktop Contribution Instructions

I am interested in contributing to the project by adding detailed instructions on how to contribute using GitHub Desktop.

I believe that by providing clear and comprehensive guidance, we can encourage more contributors to participate in the project, especially those who prefer using GitHub Desktop for their contributions.

Could you please assign me the issue related to adding GitHub Desktop contribution instructions under gssoc24? I am excited about the opportunity to contribute to the project and help streamline the contribution process for others.

Suggest New Features

This is a open ended issue, anyone is free to suggest some features in this Issue and get it approved by the maintainers before actually making a PR

Add PR template

I would like to add a pull request template for this repository. I believe that having a standardized template will help streamline the contribution process, ensuring that all necessary information is included and making it easier for maintainers to review and merge pull requests.

Could you please assign this issue to me under GSSOC'24.

Changing the card design

image

I want to change these designs, as they are not aligned and i want to change them so that it looks ui compatible

Validations using toastify library

Issue Description

Summary:
We currently have form validation implemented in our registration page, but we'd like to enhance the user experience by incorporating React Toastify for displaying validation messages.

Expected Behavior:
Form validation messages should be displayed using React Toastify, providing a more visually appealing and user-friendly way to convey validation errors.

Current Behavior:
Form validation messages are displayed within the form itself, which interrupts the layout and doesn't provide an optimal user experience.

Steps to Reproduce

  1. Navigate to the registration page.
  2. Attempt to submit the form with invalid input.
  3. Observe the current behavior of validation messages displayed within the form.

Proposed Solution

Integrate React Toastify to handle form validation messages:

  • Display validation messages using Toastify notifications.
  • Ensure messages are clear and easy to understand.
  • Customize Toastify appearance to match the overall design aesthetic.

Additional Context

  • Version of React being used.
  • Any existing form validation libraries or mechanisms in place.
  • Any specific requirements or constraints for the Toastify integration.

Missing CONTRIBUTING.md File in Repository

The repository currently lacks a CONTRIBUTING.md file, which is an important resource for guiding potential contributors on how to engage with the project effectively. A CONTRIBUTING.md file outlines the contribution guidelines, coding standards, and procedures for submitting pull requests, thus streamlining the contribution process and ensuring consistency across contributions.

Could you please assign this issue to me under GSSOC 24.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.