Skip to content

RasKemal/image-processing-flutter-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The application distinguishes between faces and documents. If a face is detected, it automatically extracts the facial bounding box, applies a grayscale filter using pure Dart image manipulation, and composites it back onto the original image. All processed files and original captures are persisted locally for offline access.

Key Features

  • Smart Auto-Detection: Uses Google ML Kit for accurate, on-device face and text recognition.
  • Face Processing: Extracts facial coordinates, applies a B&W filter, and composites the result directly onto the original image.
  • PDF Generation: Automatically converts standard document photos into clean, PDF files.
  • Local History Dashboard: Persists all scanned items to the device storage using Hive, complete with a sorting and management interface.
  • EXIF Normalization: Automatically handles iOS and Android camera sensor rotation data to ensure the ML Kit always analyzes upright images.
  • Reactive UI: Built entirely with GetX for reactive state management, seamless routing, and dependency injection.

Tech Stack and Architecture

This project follows a decoupled architecture separating Presentation, Domain (No usecases just entities and repository blueprint), and Data layers.

  • State Management & Routing: get (GetX)
  • Machine Learning: google_mlkit_face_detection, google_mlkit_text_recognition
  • Local Storage: hive, hive_flutter, path_provider
  • Camera & Media: camera, image_picker
  • Image & Document Manipulation: image, pdf
  • File Viewing: open_file

Demo

Youtube Link: https://youtube.com/shorts/7KXI8qKtdm8?si=3uIQdNiZBgDovg_G

Setup & Configuration Instructions

Prerequisites

  • Flutter SDK: ^3.11.1 or higher
  • Dart SDK: ^3.11.1 or higher
  • An iOS Simulator, Android Emulator, or a physical device. (Note: Camera capture requires a physical device).

1. Clone the Repository

git clone https://github.com/RasKemal/image-processing-flutter-app.git

Fetch required Dart packages:

flutter pub get

IOS specific

To run the app on iOS, you must install the native CocoaPods dependencies required by the Google ML Kit and Camera plugins

cd ios
pod install

DB code generation

The generated Hive adapter (history_model.g.dart) is already committed to the repository so you can run the application immediately.

However, if you ever modify the HistoryModel class, you will need to regenerate this file by running:

flutter pub run build_runner build --delete-conflicting-outputs

Running the app

You can launch the app directly from your IDE (VS Code / Android Studio) or by using the terminal commands below.

flutter run

Package Structure

lib/core/: Application theme, routing bindings.

lib/data/: Hive local data sources, ML Kit processing services, and repository implementations.

lib/domain/: Core business entities and abstract repository contracts.

lib/presentation/: GetX Controllers and Views for Home, Processing, Result, and History details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors