DairyMan is an Android application designed to simplify the daily operations of milkmen. The app allows milkmen to log customer transactions, keep a record of daily deliveries, and manage accounts effortlessly with cloud synchronization.
- Customer Management: Add, update, and delete customer details with ease.
- Daily Transactions: Record and review daily deliveries for each customer.
- Account Balancing: One-click option to update all customer balances at the end of the day.
- Temporary Rate Adjustment: Easily modify the rate of milk for specific days, helping with temporary price changes and easing daily calculations.
- Cloud Sync: Customer data is synchronized with the cloud automatically every 24 hours in the background.
- History Management: Review past transactions and deliveries for better tracking and reporting.
- User-Friendly Interface: Built with Jetpack Compose, ensuring a smooth and intuitive user experience.
- Kotlin
- Jetpack Compose
- Room Database
- Coroutines & Flow
- Firebase Firestore for cloud syncing
Since the app is currently not available on the Play Store, you can download and install the APK from the following link:
Google Drive Link or Website Link
Note: The backend API included in the source code is invalid. You need to set up your own Firebase project and add your API key in order to sync the app with the cloud.
- Go to the Firebase Console.
- Create a new Firebase project.
- Set up Firestore for cloud data syncing.
- Obtain the
google-services.json
file and replace the existing one in theapp
directory of this project. - Add your Firebase API key in the
build.gradle
(Module: app) file.
git clone https://github.com/yourusername/DairyMan.git
cd DairyMan
- Open the project in Android Studio.
- Sync the Gradle files to resolve any dependencies.
- Ensure you have the correct API key:
- Replace the existing
google-services.json
file in theapp
directory with your own. - Add your Firebase API key in the
build.gradle
(Module: app) file.
- Replace the existing
- Connect your Android device or launch an emulator.
- Click on the Run button to install the app on your device or emulator.
Building the DairyMan app allowed me to deepen my understanding of several key technologies and concepts:
- Jetpack Compose: Developed a clean and modern UI with Google's declarative UI toolkit, ensuring a user-friendly experience.
- Room Database: Implemented local data storage with Room to manage customer details and daily transactions efficiently.
- Coroutines & Flow: Leveraged Kotlin Coroutines and Flow to handle background tasks and real-time data flow seamlessly.
- Firebase Firestore: Integrated Firestore for cloud data storage, enabling background synchronization every 24 hours.
- State Management & MVVM: Used the Model-View-ViewModel (MVVM) architecture to ensure separation of concerns and smooth state management across the app.
- Services: Utilized Android Services for background tasks such as syncing data and processing tasks outside the app's lifecycle.
- WorkManager: Implemented WorkManager to handle background tasks that need guaranteed execution, like the 24-hour sync.
- Animations: Added smooth animations to enhance user experience and make interactions more fluid and engaging.