Skip to content

devDonald/docmind_reader

Repository files navigation

DocMind Reader

A hybrid local document reader app with offline-first, online-enhanced features built with Flutter.

Features

Core Identity

  • 📂 Reads documents directly from local storage
  • 📑 Automatically scans selected folders
  • 🔤 Arranges all documents alphabetically
  • 📴 Fully usable offline
  • 🌐 Unlocks smart features when internet is available
  • 🚫 No account, no login, no identity tracking

Supported Document Types

  • PDF
  • DOC / DOCX
  • TXT
  • EPUB
  • HTML
  • RTF

Key Features

  • File Discovery & Organization (Offline)

    • Auto-scan local storage folders
    • Manual folder selection
    • Alphabetical sorting (A–Z / Z–A)
    • File name search
    • Recent files section
  • Core Reading Experience (Offline)

    • One-tap open & read
    • Smooth scrolling
    • Page-by-page or continuous mode
    • Zoom (pinch & double tap)
    • Portrait & landscape support
    • Dark mode / Light mode
    • Remember last reading position
  • Advanced Annotations (Offline)

    • Text highlighting (multiple colors)
    • Add notes to selections
    • Freehand drawing
    • Annotation management
    • Export annotations
  • OCR – Text Recognition (Online/Offline)

    • OCR scanned PDFs and images
    • Search inside scanned documents
    • Language auto-detection
    • Select & copy OCR text
  • AI-Powered Smart Features (Online Only)

    • Document summary
    • Ask questions about documents
    • Key points extraction
    • Context-aware responses

Architecture

The app follows MVC (Model-View-Controller) architecture with:

  • Models: Data structures using Isar database
  • Views: Flutter UI components
  • Controllers/Providers: Riverpod state management
  • Services: Business logic and external integrations

Dependencies

dependencies:
  flutter_riverpod: ^2.4.9
  file_picker: ^6.1.1
  permission_handler: ^11.1.0
  path_provider: ^2.1.1
  pdfx: ^2.4.0
  epub_view: ^3.0.0
  flutter_widget_from_html: ^0.14.11
  google_mlkit_text_recognition: ^0.10.0
  isar: ^3.1.0+1
  connectivity_plus: ^5.0.2
  http: ^1.1.2
  share_plus: ^7.2.1
  printing: ^5.11.1

Setup Instructions

  1. Clone the repository

    git clone <repository-url>
    cd docmind_reader
  2. Install dependencies

    flutter pub get
  3. Generate Isar database files

    flutter packages pub run build_runner build
  4. Configure API keys (Optional - for AI features)

    • Open lib/services/ai_service.dart
    • Replace YOUR_API_KEY with your OpenAI API key
  5. Run the app

    flutter run

Project Structure

lib/
├── main.dart                 # App entry point
├── models/                   # Data models
│   ├── document_model.dart
│   └── annotation_model.dart
├── views/                    # UI screens
│   ├── home_view.dart
│   ├── document_reader_view.dart
│   └── settings_view.dart
├── providers/                # Riverpod providers
│   ├── theme_provider.dart
│   └── document_provider.dart
├── services/                 # Business logic
│   ├── document_service.dart
│   ├── ocr_service.dart
│   ├── ai_service.dart
│   └── annotation_service.dart
└── utils/                    # Utility functions

Permissions

Android

  • READ_EXTERNAL_STORAGE
  • WRITE_EXTERNAL_STORAGE
  • MANAGE_EXTERNAL_STORAGE
  • INTERNET
  • ACCESS_NETWORK_STATE
  • CAMERA

iOS

  • NSPhotoLibraryUsageDescription
  • NSCameraUsageDescription

Privacy & Trust

  • Files never uploaded without consent
  • AI & OCR only process selected content
  • No background uploads
  • No user accounts
  • Transparent privacy policy

Online/Offline Behavior

Feature Offline Online
File reading
Annotations
Search
OCR ⚠️ Limited
AI summaries
Ask document

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.# docmind_reader_mobile

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors