Skip to content

Mindful is a mental wellness app designed to support users in managing stress and anxiety. Powered by advanced AI, it offers personalized advice and a soothing music player for relaxation. Built with Node.js, PostgreSQL, and Firebase, Mindful follows clean architecture principles, ensuring a seamless and user-friendly experience.

License

Notifications You must be signed in to change notification settings

ARYPROGRAMMER/Mindful-App

Repository files navigation

IMPORTANT : Backend Services Working

Mindful-App

Build Status Version

Firebase License

AI USED : LLAMA-8B-8192, FACE EMOTION RECOGNITION MODEL, GEMINI/ANTHROPIC/MISTRAL SUPPORTED (API_KEY REQUIRED)

APP STATUS : ALL CORE FUNCTIONALITIES WORKING (Deployed NodeJs & Postgresql on Render)

What's New in v2.1.2 (Stable Release with Redis Phase 3 Integration)

        - **Improved AI Chat Functionality**
        - **Redis DS Change - HashMaps**
        - **Minor Bug fixes**
        - **Crash Handlers are improved**
        - **Improved Overall Performance - Implemented Impeller**
        - **Settings Tab is now Better**
        - **Redis connection fixes and data privacy improvised**
        - **Redis Cloud Implementation and Fetching in Beta Phase**
        - **Added Redis-base to support syncfusion**
        - **New Feature**: Implemented Syncfusion and Redis for low latency**
        
        ### Issues are being Resolved - Redis Full-Integration Phase 3

DEMO LINK OF WORKING

PRE-PRODUCTION INSIDERS

Blog Post on dev.to

Mindful

Mindful Logo

Personal Mental Wellness Companion

Table of Contents

Overview

In a world where stress and anxiety are increasingly common, Mindful serves as a sanctuary for mental health. This innovative application empowers users to enhance their well-being through personalized advice and relaxation techniques. By integrating advanced AI technology, Mindful provides tools to help users cultivate mindfulness and manage their mental health effectively.

Features

  • Personalized Advice: Experience tailored guidance powered by LLAMA-8B-8192 (previously : Gemini) (Since its free) an advanced AI fine tuned to understand your unique mental health needs. Use your API_KEY to integrate with Anthropic, OpenAI, and Mistral, enhancing the support provided. Code is already provided for them.

  • Relaxation Music Player: Immerse yourself in a curated selection of soothing tracks. The built-in music player is designed to help users unwind, recharge, and foster a peaceful environment for relaxation.

  • User-Friendly Interface: Navigate effortlessly through an intuitive design that makes accessing mental health resources easy and enjoyable.

  • Face Detection Model : Analyze your mood with your facial expressions, this can be further linked to different services.

App Screenshot 1 App Screenshot 2 Login / Register

Technologies Used

  • Backend:

    • Node.js: A powerful JavaScript runtime for building scalable network applications.
    • PostgreSQL: An advanced relational database for storing user data securely.
    • Firebase: A comprehensive platform for building web and mobile applications with real-time data syncing.
    • Tensorflow: To Create the FER Model using FER2013 Dataset.
  • Architecture:

    • Clean Architecture: Ensures the application is modular and maintainable.
    • SOLID Principles: Follows best practices for software development, promoting scalability and ease of testing.

Architecture

The Mindful app employs a clean architecture pattern, allowing for separation of concerns and enhancing maintainability. This design makes the app adaptable to future changes and ensures a robust user experience. By adhering to SOLID principles, Mindful promotes best practices that facilitate development and testing.

Key Architectural Decisions:

  • ModelView-ViewModel pattern to handle user requests and business logic.
  • Separation of concerns for better code management and maintainability.
  • Extensibility built-in so new AI features and wellness tools can be integrated smoothly in future updates.

To run Mindful locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/ARYPROGRAMMER/mindful.git
    cd server/mental-health-api/
  2. Install dependencies:

    npm install
  3. Setup environment variables (OPTIONAL, USE MINE): Changes in API_KEY (if needed) to be done in :

    mental-health-api/
    ├──...          
    ├──...         
    ├──...          
    ├──...        
    ├── server.js          # Main server file
    ├── infrastructure/               
        ├── geminiai/   
        ├   └── geminiService.js  # NEW API KEY ADDING SLOT
        └──── db/    
               └── index.js  # PostGres Setup
    
    
  4. Run the Server: (Not Needed after v1.0.6)

    npm start
  5. Run the App:

    cd ../../lib/
    flutter clean
    flutter pub get
    flutter run
    

    Alternatively you could use :

    flutter build apk
  6. Structure of DB:

    Songs Table

     YOU NEED TO CREATE THIS YOURSELF IN POSTGRESQL (Not Needed after v1.0.6)
    
     This is the structure of the `songs` table in the `public` schema.
     
     | Column   | Type                   | Collation | Nullable | Default                                |
     |----------|------------------------|-----------|----------|----------------------------------------|
     | `title`  | `character varying(100)`|           | `false`  |                                        |
     | `author` | `character varying(100)`|           | `false`  |                                        |
     | `songlink`| `character varying(256)`|          | `false`  |                                        |
     | `id`     | `bigint`                |           | `false`  | `nextval('songs_id_seq'::regclass)`    |
     | `imageid`| `character varying(256)`|           | `true`   |                                        |
     
     ### Notes:
     - The `id` column is auto-incremented using the `nextval('songs_id_seq'::regclass)` function.
     - `imageid` is optional and can store a link or identifier for the image associated with the song.
    
  7. PROVIDE CONNECTION IN FLUTTER : (NOT NEEDED AFTER v1.0.6)

    cd lib/features/meditation/data/meditation_remote_source.dart
    cd lib/features/music/data/song_database.dart

    Give your IPv4 in the Uri.Parse url. ("mine starts with 192").

MORE SCREENSHOTS

Model NEW MODEL

Home App Screenshot 5 App Screenshot 5

Song Playlist App Screenshot 7

Settings App Screenshot 8

Backend App Screenshot 9 App Screenshot 9 App Screenshot 10 App Screenshot 10

Usage

  • Explore all the sections to receive personalized mental health tips based on your needs.
  • Use the music player to listen to relaxing tracks and enhance your mindfulness practice.
  • Explore the FER MODEL Section (NOT Fully Developed).

Song Player in Action

References

  • Machine Learning Model: Colab Notebook
    This notebook contains the ML model used in the app. Feel Free to Clone and Modify.

  • UI Inspiration: Figma File
    Explore the Figma file for design inspiration and UI components.

Contributing

We welcome contributions to improve Mindful! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature) (DONT USE MAIN).
  3. Make your changes and commit them (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For questions or feedback, please reach out to me at:


Mindful - I invite you to join a community focused on mental health and well-being. Together, we can create a positive impact, one mindful moment at a time. PRs ARE APPRECIATED

About

Mindful is a mental wellness app designed to support users in managing stress and anxiety. Powered by advanced AI, it offers personalized advice and a soothing music player for relaxation. Built with Node.js, PostgreSQL, and Firebase, Mindful follows clean architecture principles, ensuring a seamless and user-friendly experience.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages