- Barcode scanner Android application, based on MVVM Architecture
- An offline friendly app
- Handled edge cases related to multiple clicks, multiple toasts, asking user permission, etc.
- GitHub Actions & Firebase App distribution for CI/CD to reduce testing time by 20%
- Implemented R8 to reduce apk size by 28.5%
This app is created for an official purpose currently being used in our College, in order to easily keep a track on students coming late to the college. The app data is synced with a remote server, where data is stored permanently.
- The user must authenticate himself first in order to start scanning
- The app provides a quick barcode scanner, with an option to enable flash
- In case of damaged camera/barcode, the user can manually enter student number and register a late entry
- On scanning or manually entering data, student details pops up with name, branch, admission year, image, & student no (which are stored in app's database to provide quicker access)
- In offline scenario, all entries are stored in app's database, & can be synced with the server afterwards
- The Settings page include the option to sync locally stored student details & late entry records and other options related to the user
Splash | Login | Student Details | Settings |
---|---|---|---|
Late.Entry.mp4
Offline.Functionality.mp4
- Clone this repository to your local machine
- Generate a
BASE URL
for your server & update the variable in Constants.kt - Create a project in Firebase & generate
appID
andfirebase token
- Then add the following values to your GitHub Secrets:
SIGNING_KEY_ALIAS
SIGNING_KEY_PASSWORD
SIGNING_STORE_PASSWORD
FIREBASE_APP_ID
FIREBASE_TOKEN
- Build the project and then run it
- Kotlin + Coroutines
- ViewModel + LiveData
- ROOM DB
- Preferences Datastore
- Retrofit
- R8
- GitHub Actions
- Firebase App Distribution
Join us in shaping the future of this project โ your contributions are invaluable!
- Fork the repository and create a new branch for your feature or bug fix
- Make your changes and ensure that the code follows the project's coding standards
- Write tests to cover your changes and ensure that existing tests pass
- Submit a pull request, explaining the changes and the problem it addresses
- A project maintainer will review your pull request, and upon approval, it will be merged into the main branch
Distributed under the MIT License. See LICENSE
file for more information.