43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
# FingerScanner
|
|
|
|
A Flutter biometric capture app demonstrating Clean Architecture and Riverpod.
|
|
|
|
## Features
|
|
|
|
- **Camera Preview**: Real-time camera feed using the `camera` package.
|
|
- **Real-time Quality Analysis**:
|
|
- **Throttled Stream**: Processes camera frames at ~6-7 FPS.
|
|
- **Background Isolate**: Offloads heavy image processing to a background thread to keep UI smooth.
|
|
- **Quality Checks**:
|
|
- **Sharpness**: Laplacian variance.
|
|
- **Brightness**: Mean pixel intensity.
|
|
- **Presence**: ROI standard deviation check.
|
|
- **Dynamic UI Guide**: Visual guide changes color (Red/Green) based on analysis results.
|
|
- **Clean Architecture**: Separation of concerns into Core, Data, Domain, and Presentation layers.
|
|
- **State Management**: Powered by `flutter_riverpod` (Notifier).
|
|
|
|
## Getting Started
|
|
|
|
1. **Install Dependencies**:
|
|
```bash
|
|
flutter pub get
|
|
```
|
|
|
|
2. **Run on Device**:
|
|
Connect a physical device (Camera is not supported on iOS Simulator).
|
|
```bash
|
|
flutter run
|
|
```
|
|
|
|
## Permissions
|
|
|
|
- **iOS**: `NSCameraUsageDescription` and `NSMicrophoneUsageDescription` are added to `Info.plist`.
|
|
- **Android**: `android.permission.CAMERA` is added to `AndroidManifest.xml`.
|
|
|
|
## Architecture
|
|
|
|
- **Domain Layer**: Entities (`ScanResult`, `QualityStatus`), Repositories (Interface), UseCases (`ScanFingerprint`).
|
|
- **Data Layer**: DataSources (`CameraDataSource`), Repository Implementation.
|
|
- **Presentation Layer**: Riverpod Providers (`ScannerNotifier`), Screens (`ScannerScreen`), Widgets (`CameraPreviewWidget`, `FingerprintGuidePainter`).
|
|
- **Core**: Services (`ImageProcessorIsolate` using `opencv_dart`).# finger_print
|