Skip to content

github2python/MediAssist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MediAssist - Hindi Voice-First Healthcare Assistant

A production-ready mobile application for conducting medical surveys using voice input in Hindi. Built with Expo React Native, this app works offline-first and uses open-source technologies to maximize efficiency.

Features

🎤 Voice Interface

  • Hindi speech-to-text input using device capabilities
  • Text-to-speech for questions and instructions
  • Fallback to manual input when voice fails
  • Automatic retry mechanism for misheard responses

📱 Offline-First Architecture

  • Complete offline functionality with SQLite database
  • Automatic sync when internet becomes available
  • Queue management for unsynced data
  • Visual indicators for sync status

🏥 Medical Survey System

  • Structured questionnaire with branching logic
  • Gender-specific and age-specific questions
  • Validation and confirmation for critical inputs
  • Support for multiple question types (text, number, boolean, choice, multiselect)

🔒 Security

  • AES-256 encryption for stored data
  • Secure data transmission over HTTPS
  • Minimal data collection (privacy by design)
  • Encrypted local storage

👥 User-Friendly Design

  • Icon-first, text-light interface for low-literacy users
  • Large buttons and simple navigation
  • Progress indicators and status updates
  • Culturally appropriate Hindi language throughout

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/mediassist.git
cd mediassist
  1. Install dependencies:
npm install
  1. Install Expo CLI globally (if not already installed):
npm install -g expo-cli
  1. Start the development server:
npm start
# or
expo start
  1. Run on your device:
  • Install Expo Go app on your Android/iOS device
  • Scan the QR code from the terminal or Expo Dev Tools

Building for Production

Android

expo build:android -t apk

iOS

expo build:ios

Architecture

Module Structure

src/
├── components/       # Reusable UI components
├── screens/         # Screen components
├── services/        # Core services
│   ├── database/    # SQLite database service
│   ├── voice/       # Voice engine (STT/TTS)
│   ├── sync/        # Sync manager
│   ├── security/    # Encryption service
│   ├── survey/      # Survey questions and logic
│   ├── permissions/ # Permission management
│   └── network/     # Network monitoring
└── assets/          # Images and static resources

Key Technologies

  • Framework: Expo React Native
  • Language: JavaScript
  • Database: SQLite (expo-sqlite)
  • Voice: expo-speech, expo-av
  • Encryption: crypto-js, expo-crypto
  • Navigation: React Navigation
  • State Management: React Hooks

Voice Integration

The app uses Expo's built-in speech capabilities for TTS and audio recording for STT. In production, you can integrate:

  • Vosk: Open-source offline speech recognition
  • Coqui TTS: High-quality open-source TTS
  • eSpeak/Pico TTS: Lightweight alternatives

Database Schema

survey_responses

  • id: Primary key
  • survey_id: Unique survey identifier
  • patient_data: Encrypted patient information
  • responses: Encrypted survey responses
  • is_synced: Sync status flag
  • created_at: Timestamp

sync_queue

  • Manages offline sync queue
  • Tracks retry attempts
  • Handles failed sync operations

API Integration

The app is designed to sync with a backend API at:

https://api.mediassist.health

Configure your API endpoint in:

src/services/sync/SyncManager.js

Error Handling

  • Comprehensive error boundaries
  • Graceful fallbacks for voice failures
  • Network error recovery
  • Validation and user feedback
  • Crash reporting integration ready

Performance Optimizations

  • Lazy loading of screens
  • Optimized bundle size
  • Efficient database queries
  • Minimal re-renders
  • Background sync processing

Testing

Run tests:

npm test

Deployment Checklist

  • Configure production API endpoints
  • Set up crash reporting service
  • Generate production signing keys
  • Configure app store metadata
  • Test on low-end devices
  • Verify offline functionality
  • Test voice recognition accuracy
  • Validate encryption implementation

Support

For issues and questions, please open an issue on GitHub.

License

MIT License - See LICENSE file for details

Contributors

  • MediAssist Development Team

Acknowledgments

  • Built with Expo and React Native
  • Voice capabilities powered by device native features
  • Designed for rural healthcare initiatives in India

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published