Skip to content

Latest commit

 

History

History
488 lines (402 loc) · 14.8 KB

File metadata and controls

488 lines (402 loc) · 14.8 KB

🧠 Mind Mate - Complete Project Documentation

📋 Table of Contents

  1. Project Overview
  2. Technology Stack
  3. Project Structure
  4. Features & Components
  5. Mobile Optimizations
  6. Configuration Files
  7. APK Build Process
  8. Usage Instructions
  9. Development Guide

🎯 Project Overview

Mind Mate is a comprehensive AI-powered mental health companion application built with Next.js and optimized for mobile devices. The app provides offline-first mental wellness tools including mood tracking, journaling, self-care exercises, and AI-powered insights.

Key Highlights

  • 📱 Mobile-First Design: Fully optimized for mobile devices and APK deployment
  • 🔒 Privacy-Focused: All data stays on device, no external servers
  • 🎤 Voice Integration: Speech-to-text journaling and text-to-speech responses
  • 🧠 AI-Powered: Intelligent mood analysis and personalized recommendations
  • 🌙 Dark Mode: Beautiful dark/light theme support
  • 📊 Analytics: Comprehensive mood and wellness tracking

🛠 Technology Stack

Frontend Framework

  • Next.js 15.2.4 - React framework with App Router
  • React 19 - Modern React with latest features
  • TypeScript - Type-safe development

UI & Styling

  • Tailwind CSS 3.4.17 - Utility-first CSS framework
  • Radix UI - Headless UI components
  • Lucide React - Beautiful icon library
  • Framer Motion - Smooth animations
  • next-themes - Dark/light mode support

Mobile & Native

  • Capacitor 7.4.2 - Cross-platform native runtime
  • Android Gradle Plugin - Android build system
  • Web Speech API - Native speech recognition/synthesis

Development Tools

  • ESLint & Prettier - Code quality and formatting
  • PostCSS & Autoprefixer - CSS processing
  • Recharts - Data visualization

📁 Project Structure

d:\mirror-chat-app/
├── 📁 app/                          # Next.js App Router
│   ├── favicon.ico                  # App favicon
│   ├── globals.css                  # Global styles
│   ├── layout.tsx                   # Root layout component
│   └── page.tsx                     # Home page component
│
├── 📁 components/                   # React components
│   ├── 📁 ui/                      # Base UI components (Radix)
│   │   ├── button.tsx               # Button component
│   │   ├── card.tsx                 # Card component
│   │   ├── input.tsx                # Input component
│   │   ├── select.tsx               # Select dropdown
│   │   ├── tabs.tsx                 # Tab navigation
│   │   ├── badge.tsx                # Badge component
│   │   ├── label.tsx                # Form label
│   │   ├── radio-group.tsx          # Radio button group
│   │   ├── toast.tsx                # Toast notifications
│   │   └── [other-ui-components]    # Additional UI components
│   │
│   ├── analytics-view.tsx           # Mood analytics dashboard
│   ├── breathing-exercise.tsx       # Guided breathing exercises
│   ├── community-support.tsx        # Community features
│   ├── crisis-support.tsx           # Crisis intervention tools
│   ├── dark-mode-toggle.tsx         # Theme switching
│   ├── habit-tracker.tsx            # Daily habit tracking
│   ├── journal-entry.tsx            # Voice/text journaling
│   ├── mobile-home-dashboard.tsx    # Mobile-optimized dashboard
│   ├── mobile-permissions.tsx       # Mobile permissions manager
│   ├── mood-tracker.tsx             # Daily mood tracking
│   ├── onboarding-flow.tsx          # User onboarding process
│   ├── self-care-activities.tsx     # Wellness activities
│   ├── settings-panel.tsx           # App settings
│   ├── story-time.tsx               # Therapeutic stories
│   └── tts-manager.tsx              # Text-to-speech engine
│
├── 📁 hooks/                       # Custom React hooks
│   ├── use-mobile-keyboard.ts       # Mobile keyboard handling
│   ├── use-local-storage.ts         # Local storage utilities
│   └── use-speech-recognition.ts    # Speech recognition hook
│
├── 📁 lib/                         # Utility functions
│   ├── utils.ts                     # General utilities
│   └── speech-recognition.ts        # Speech processing utilities
│
├── 📁 android/                     # Android native project
│   ├── 📁 app/                     # Android app module
│   │   ├── 📁 src/main/            # Android source code
│   │   └── build.gradle             # App build configuration
│   ├── gradle.properties           # Gradle properties
│   ├── settings.gradle              # Project settings
│   └── gradlew                     # Gradle wrapper
│
├── 📁 out/                         # Next.js static export output
├── 📁 public/                       # Static assets
│   └── mind-mate-logo.svg          # App logo
│
├── 📁 styles/                       # Additional styles
├── capacitor.config.ts              # Capacitor configuration
├── next.config.js                  # Next.js configuration
├── tailwind.config.ts              # Tailwind CSS configuration
├── package.json                    # Dependencies and scripts
├── tsconfig.json                   # TypeScript configuration
└── PROJECT_DOCUMENTATION.md       # This documentation

🎨 Features & Components

1. Onboarding System (onboarding-flow.tsx)

  • Multi-step user registration
  • Language selection (English, Spanish, French, German, Portuguese)
  • Age-appropriate mode selection (Teen/Adult)
  • Emergency contact setup
  • Mobile permissions integration

Key Features:

  • Touch-friendly interface
  • Keyboard-aware form handling
  • Progress indication
  • Mobile-optimized layouts

2. Mobile Dashboard (mobile-home-dashboard.tsx)

  • Dual Tab Interface:
    • 🏠 Home Tab: Quick actions, mood status, daily stats
    • 🛠️ Tools Tab: All wellness tools organized
  • Settings icon in header (no more cluttered tabs)
  • Daily streak tracking
  • Quick action cards
  • AI-powered insights

3. Mood Tracking (mood-tracker.tsx)

  • 5-point mood scale with emojis
  • Daily mood logging
  • Trend analysis and insights
  • Historical mood patterns
  • Crisis detection and support

Features:

  • Visual mood indicators
  • Personalized AI responses
  • Emergency support triggers
  • Export mood data

4. Voice Journaling (journal-entry.tsx)

  • Speech-to-text conversion
  • Traditional text input option
  • Entry categorization
  • Search and filter capabilities
  • TTS playback of entries

Capabilities:

  • Offline voice recognition
  • Real-time transcription
  • Entry editing and management
  • Voice playback of written entries

5. Text-to-Speech Engine (tts-manager.tsx)

  • Mobile-optimized voice synthesis
  • Multi-language support
  • APK-compatible implementation
  • Encouraging voice responses
  • Breathing exercise guidance

Advanced Features:

  • Voice chunking for long text
  • Mobile browser compatibility
  • Fallback voice options
  • Dynamic voice loading

6. Self-Care Activities (self-care-activities.tsx)

  • Guided breathing exercises
  • Meditation sessions
  • Progressive muscle relaxation
  • Mindfulness activities
  • Customizable timers

7. Analytics Dashboard (analytics-view.tsx)

  • Mood trend visualization
  • Weekly/monthly reports
  • Pattern recognition
  • Correlation insights
  • Progress tracking

Charts & Visualizations:

  • Line charts for mood trends
  • Bar charts for activity frequency
  • Heat maps for daily patterns
  • Progress indicators

8. Crisis Support (crisis-support.tsx)

  • Emergency contact quick access
  • Crisis hotline numbers
  • Immediate coping strategies
  • Professional resource links
  • Safety planning tools

9. Mobile Permissions (mobile-permissions.tsx)

  • Mandatory: Microphone (for voice journaling)
  • Optional: Notifications, File access
  • Clear permission explanations
  • Graceful degradation if denied
  • Native mobile permission dialogs

10. Habit Tracker (habit-tracker.tsx)

  • Custom habit creation
  • Daily check-in system
  • Streak tracking
  • Progress visualization
  • Habit analytics

📱 Mobile Optimizations

Keyboard Handling (use-mobile-keyboard.ts)

// Prevents keyboard from hiding content
// 44px minimum touch targets
// Dynamic viewport adjustments
// Smooth scrolling with momentum

Touch-Friendly Interface

  • Button Sizes: Minimum 44px for accessibility
  • Touch Targets: Optimized spacing between interactive elements
  • Gesture Support: Swipe navigation and touch feedback
  • Responsive Grids: Adapt to different screen sizes

Performance Optimizations

  • Code Splitting: Dynamic imports for better loading
  • Image Optimization: Responsive images with Next.js
  • Bundle Analysis: Optimized chunk sizes
  • Lazy Loading: Components load on demand

APK-Specific Features

  • Offline-First: All data stored locally
  • Native Permissions: Proper Android permission handling
  • Background Tasks: Notification scheduling
  • File System Access: Local data persistence

⚙️ Configuration Files

1. Next.js Configuration (next.config.js)

const nextConfig = {
  output: 'export',           // Static export for APK
  trailingSlash: true,       // Mobile browser compatibility
  images: { unoptimized: true }, // APK image handling
  distDir: 'out'             // Output directory
}

2. Capacitor Configuration (capacitor.config.ts)

const config: CapacitorConfig = {
  appId: 'com.mindmate.app',
  appName: 'Mind Mate',
  webDir: 'out',
  plugins: {
    SplashScreen: { /* splash config */ },
    StatusBar: { /* status bar config */ },
    Keyboard: { /* keyboard behavior */ }
  }
}

3. Tailwind Configuration (tailwind.config.ts)

// Mobile-first responsive design
// Dark mode support
// Custom color palette
// Animation utilities

4. TypeScript Configuration (tsconfig.json)

{
  "compilerOptions": {
    "target": "ES2017",
    "module": "esnext",
    "jsx": "preserve",
    "strict": true
  }
}

📦 APK Build Process

Build Commands

# Development build
npm run dev

# Production build
npm run build

# Mobile sync
npx cap sync

# Debug APK
cd android && ./gradlew assembleDebug

# Release APK (requires signing)
npx cap build android

APK Output Location

📁 android/app/build/outputs/apk/
├── 📁 debug/
│   └── app-debug.apk          # ~162MB Debug APK
└── 📁 release/
    └── app-release.apk        # ~161MB Release APK

APK Features

  • Size: ~162MB (includes all dependencies)
  • Target SDK: Android 14 (API 34)
  • Min SDK: Android 7.0 (API 24)
  • Permissions: Microphone, Storage, Notifications
  • Architecture: Universal (all architectures)

🚀 Usage Instructions

Development Setup

  1. Install Dependencies

    npm install
  2. Start Development Server

    npm run dev

    App runs at: http://localhost:3000

  3. Build for Production

    npm run build

Mobile Testing

  1. Test in Browser: Open dev tools, toggle device mode
  2. Test on Device: Access via network IP
  3. APK Testing: Install debug APK on Android device

First-Time User Flow

  1. Onboarding: Complete 6-step setup process
  2. Permissions: Grant microphone access (required)
  3. Home Dashboard: Explore dual-tab interface
  4. Mood Check: Log first mood entry
  5. Voice Journal: Try speech-to-text feature

🔧 Development Guide

Adding New Components

  1. Create component in components/
  2. Export from components/index.ts
  3. Add mobile-responsive styles
  4. Include keyboard handling if needed

Mobile Best Practices

  • Use mobile-* CSS classes for mobile-specific styles
  • Implement touch targets ≥44px
  • Test on actual mobile devices
  • Consider keyboard behavior

Performance Tips

  • Use dynamic imports for large components
  • Implement proper loading states
  • Optimize images and assets
  • Monitor bundle size

Testing Strategy

  1. Unit Tests: Component functionality
  2. Integration Tests: User workflows
  3. Mobile Tests: Touch interactions
  4. APK Tests: Native features

📊 Current Status

✅ Completed Features

  • Mobile-optimized UI/UX
  • Dual-tab home dashboard
  • Mobile permissions system
  • Voice journaling with TTS
  • Mood tracking with AI insights
  • Self-care activities
  • Crisis support system
  • Dark/light mode themes
  • Offline-first architecture
  • APK build configuration
  • Keyboard handling fixes

🔄 In Progress

  • Advanced analytics
  • Community features
  • Habit tracking refinements
  • Additional languages

🎯 Future Enhancements

  • Widget support
  • Wear OS integration
  • Advanced AI features
  • Cloud sync (optional)
  • Professional therapist integration

📞 Support & Resources

Mental Health Resources

Technical Support

  • GitHub Issues: For bug reports and feature requests
  • Documentation: This file and inline comments
  • Community: Mental health tech community

📄 License & Privacy

Privacy Policy

  • Data Storage: All data stored locally on device
  • No Tracking: No analytics or user tracking
  • Open Source: Code available for review
  • HIPAA Considerations: Designed with healthcare privacy in mind

License

This project is built for mental health support and education. All code is provided as-is for learning and therapeutic purposes.


🏆 Credits & Acknowledgments

Built With Love For Mental Health

This application was created to provide accessible, private, and effective mental health support tools. Special thanks to the mental health community for guidance and feedback.

Open Source Libraries

  • Next.js team for the amazing framework
  • Radix UI for accessible components
  • Tailwind CSS for utility-first styling
  • Capacitor team for mobile deployment
  • React community for ecosystem support

Last Updated: January 27, 2025
Version: 0.1.0
Build Status: ✅ Production Ready
APK Status: ✅ Successfully Built


Mind Mate - Your AI-powered mental health companion 🧠💚