- Customizable Cup Size: Log your water intake by selecting the cup size that fits your preference.
- Hourly Notification Reminder: Get notified every hour to remind you to drink water.
- Water Intake History: Track and view your water intake history over time to monitor your progress.
- Daily Reset: Automatically reset your total water intake at the start of each day.
- Dark/Light Theme: Easily switch between dark and light themes for a personalized app experience.
Check out the video demonstration of DropCount:
dropcount.mp4
Here’s a walkthrough of DropCount showing both light and dark themes.
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
This screen allows the user to choose the size of the water cup they want to log.
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
This screen displays the app after the user has logged their water intake, showing progress toward the daily hydration goal.
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
This screen demonstrates the process of enabling the hourly water intake reminder notification. The user can activate this feature to receive periodic reminders to log their water intake.
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
This screen shows the process of disabling the hourly reminder notification. The user can turn off notifications to stop receiving periodic reminders about their water intake.
Light Theme | Dark Theme |
---|---|
![]() |
![]() |
This screen celebrates the user for achieving their daily water intake goal. A congratulatory message is displayed along with animations to mark the accomplishment.
- Shared Preferences: Used to store user preferences such as theme selection and notification settings.
- WorkManager: Handles scheduling of periodic tasks, such as sending hourly water intake reminders.
- Room Database: Provides a persistent local database for storing water intake history and records.
- Navigation Components: Used for navigating between different screens and fragments within the app.
- View Binding: Ensures safe and efficient interaction with UI components.
- Coroutines: Used for handling background tasks asynchronously, such as retrieving data from Room or API calls.
- Notifications: Used to remind the user to log their water intake periodically.
To get a local copy of the project up and running, follow these steps:
-
Clone the repository by running the following command in your terminal:
git clone https://github.com/Rodinamomen/DropCount.git
The project relies on the following libraries and frameworks:
-
Navigation Components
androidx.navigation:navigation-fragment-ktx:2.7.7
androidx.navigation:navigation-ui-ktx:2.7.7
-
WorkManager
androidx.work:work-runtime-ktx:2.9.1
-
Konfetti (for celebrations)
nl.dionsegijn:konfetti-xml:2.0.4
-
Circular Progress Bar
com.mikhaellopez:circularprogressbar:3.1.0
-
Room Database
androidx.room:room-runtime:2.6.1
androidx.room:room-ktx:2.6.1
androidx.room:room-compiler:2.6.1
Add these dependencies to your build.gradle
(Module: app) file to ensure that all necessary libraries are included in your project.
This project is developed using:
- Kotlin for writing application logic.
- XML for defining user interface layouts and resources.