CamScan is an Android application designed to scan images from the user's photo gallery, detect faces in each image using MediaPipe, and allow users to tag each detected face with names. The app ensures a smooth user experience with loading indicators and saves images with detected faces in a local database.
- Gallery Access: Easily access and scan images from the device's gallery.
- Face Detection: Leverage MediaPipe's powerful face detection capabilities to identify faces in images.
- Tagging: Tag detected faces with names for better organization and retrieval.
- Local Storage: Save images with detected faces and tags in a Room database.
- User Interface: Intuitive UI that provides loading indicators during processing.
- Kotlin - First class and official programming language for Android development.
- MediaPipe - Library for face detection.
- Hilt - Hilt provides a standard way to incorporate Dagger dependency injection into an Android application.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room - SQLite object mapping library.
com.example.screenshot # Root Package
├── data # For data handling.
│ ├── local # Local Persistence Database. Room (SQLite) database
| ├── repository # Single source of data.
│ └── model # Model classes
|
├── di # Dependency Injection
├── util # Utility Classes / Kotlin extensions
├── presentation # Presentation layer
│ ├── ui # Activity layer
│ ├── util # Utility Classes / Kotlin extensions
│ └── viewmodel # ViewHolder for RecyclerView
└── app # Application Class
This app uses MVVM (Model View View-Model) architecture.
Before you begin, ensure you have the following installed:
- Android Studio
- Kotlin
- Gradle
- Clone the repository:
git clone https://github.com/Yashgugaliya/CamScan.git