Skip to content

IsaamMJ/MediCapture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Flutter Camera Session Manager

A healthcare-focused Flutter mobile application designed for session-based image capture workflows with SQLite metadata storage and efficient session management capabilities.

๐Ÿ“ฑ Overview

This application enables healthcare professionals to capture and organize patient images in structured sessions, storing essential metadata for easy retrieval and documentation purposes. Built specifically for Android platforms with an offline-first architecture.

โœจ Key Features

๐Ÿ“ธ Session-Based Image Capture

  • Start and manage photo capture sessions
  • Capture multiple images within a single session
  • Real-time camera preview with smooth 30+ FPS performance
  • Image counter and thumbnail preview during capture
  • Session completion with metadata entry

๐Ÿ’พ Data Storage & Organization

  • Local Image Storage: Android/media/<AppName>/Sessions/<SessionID>/IMG_timestamp.jpg
  • SQLite Database: Session metadata storage (SessionID, Name, Age, Timestamp)
  • Organized file structure by SessionID for easy management
  • Offline-only storage (no cloud dependency)

๐Ÿ” Search & Retrieval

  • Search sessions by SessionID
  • Display complete session metadata
  • View all images captured in selected sessions
  • Gallery view for session image browsing

๐ŸŽจ User Interface

  • Material 3 design system implementation
  • Healthcare-optimized UI/UX design
  • Clean, professional interface
  • Responsive design for various screen sizes

๐Ÿ› ๏ธ Technical Stack

Flutter Dependencies

dependencies:
  flutter:
    sdk: flutter
  camera: ^0.10.5+2          # Camera functionality
  sqflite: ^2.3.0           # SQLite database operations
  path_provider: ^2.0.15    # Device storage paths
  permission_handler: ^10.4.3 # Camera and storage permissions

Architecture

  • Clean code structure with separation of concerns
  • State management using Provider/Bloc pattern
  • Material 3 design system
  • Modular component architecture

๐Ÿš€ Getting Started

Prerequisites

  • Flutter SDK (3.0.0 or higher)
  • Android Studio or VS Code with Flutter extensions
  • Android device or emulator (API level 21+)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/flutter-camera-session-manager.git
    cd flutter-camera-session-manager
  2. Install dependencies

    flutter pub get
  3. Run the application

    flutter run

Permissions Setup

The app requires the following permissions (automatically handled):

  • Camera access for image capture
  • Storage access for saving images
  • No internet permission required (offline app)

๐Ÿ“ฑ Usage Workflow

Starting a New Session

  1. Tap "Start Session" on the main screen
  2. Camera preview opens with live feed
  3. Capture multiple images using the capture button
  4. View captured images in thumbnail preview
  5. Tap "End Session" when complete

Session Completion

  1. Fill in the metadata form:
    • SessionID: Unique alphanumeric identifier
    • Name: Patient/subject name (minimum 2 characters)
    • Age: Numeric value (1-120 range)
  2. Tap "Save Session" to store data
  3. Images are organized in dedicated session folder

Searching Sessions

  1. Navigate to "Search Sessions"
  2. Enter SessionID in search field
  3. View session metadata and captured images
  4. Browse images in gallery view

๐Ÿ“ File Structure

lib/
โ”œโ”€โ”€ main.dart                 # App entry point
โ”œโ”€โ”€ models/                   # Data models
โ”‚   โ”œโ”€โ”€ session.dart
โ”‚   โ””โ”€โ”€ session_database.dart
โ”œโ”€โ”€ screens/                  # UI screens
โ”‚   โ”œโ”€โ”€ home_screen.dart
โ”‚   โ”œโ”€โ”€ camera_screen.dart
โ”‚   โ”œโ”€โ”€ session_form_screen.dart
โ”‚   โ””โ”€โ”€ search_screen.dart
โ”œโ”€โ”€ widgets/                  # Reusable components
โ”‚   โ”œโ”€โ”€ session_card.dart
โ”‚   โ””โ”€โ”€ image_gallery.dart

โœ… Validation Rules

  • SessionID: Required, alphanumeric, must be unique
  • Name: Required, minimum 2 characters
  • Age: Required, numeric, range 1-120
  • Images: Minimum 1 image required per session

๐Ÿ”ง Error Handling

The application handles various error scenarios:

  • Camera permission denied
  • Storage permission denied
  • Invalid SessionID format
  • Database connection errors
  • Image save failures
  • Empty search results
  • Network connectivity issues

๐Ÿ“ˆ Performance Optimization

  • Smooth camera preview (30+ FPS)
  • Fast image capture and save operations
  • Responsive UI during database operations
  • Efficient image loading in gallery view
  • Optimized SQLite queries
  • Memory management for large image sets

๐ŸŽฅ Demo & Resources

For demo screenshots, APK file, and additional resources, visit: https://drive.google.com/drive/folders/1ed2Dq2lW6Y7B-etLz7c7FzTO8CO459JW?usp=sharing

๐Ÿ—๏ธ Build Instructions

Debug Build

flutter build apk --debug

Release Build

flutter build apk --release

Split APKs by ABI

flutter build apk --split-per-abi

๐Ÿงช Testing

Unit Tests

flutter test

Integration Tests

flutter drive --target=test_driver/app.dart

๐Ÿ”ฎ Future Enhancements

  • iOS platform support
  • Cloud storage integration
  • Advanced image editing features
  • Batch session operations
  • Export functionality (PDF reports)
  • Session analytics and reporting
  • Multi-language support

Built with โค๏ธ using Flutter for healthcare professionals

About

A healthcare-focused Flutter mobile app for session-based image capture workflows. Users can start photo sessions, capture multiple images, and store session metadata (SessionID, Name, Age) in SQLite database. Features real-time camera preview, local file storage organized by sessions, and search functionality for efficient session retrieval.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors