GitHunt
FL

flexycode/CTAPDEVL_Final_Project

๐Ÿ’ง Water Tracking App

๐Ÿ’ง Save Our Water - Android Water Conservation Tracker

App Banner
Min SDK
Target SDK
Kotlin
Status

Turning every drop count into a global movement.

Save Our Water is an innovative Android application that empowers users to track, reduce, and contextualize their water footprint through gamification, real-time tracking, and impact visualization.


<<<<<<< Updated upstream

======= ## ๐Ÿ“‹ Table of Contents

Stashed changes

๐ŸŒŠ Project Overview

๐Ÿ’ก The Problem

We live in a world where we track everythingโ€”steps, calories, screen timeโ€”yet we completely ignore the most finite resource that keeps us alive: Water. Most people turn on the tap assuming the flow is endless, without accountability for consumption.

โœจ The Solution

Save Our Water transforms passive water consumption into active environmental stewardship through:

  • ๐Ÿ’ง Real-time water usage tracking
  • ๐ŸŽฏ Gamified conservation goals
  • ๐Ÿ“Š Impact visualization & contextual insights
  • ๐Ÿ† Achievement system for behavioral change
  • ๐ŸŒ Educational content on water conservation

๐Ÿ“ธ Screenshots

๐Ÿ  Home Dashboard

Home Dashboard

Real-time water usage overview with daily stats, weekly trend chart, and quick action buttons. Features streak counter, conservation tips, and recent activity feed.


๐Ÿ’ง Water Tracking Interface

Water Tracking

Intuitive activity logging with 6 preset categories (Shower, Tap, Toilet, Laundry, Dishes, Garden). Smart estimation based on duration and flow rate.


๐Ÿ“Š Activity History & Analytics

Activity Log

Comprehensive usage history with filterable timeline, detailed breakdown by category, and visual progress toward daily goals.


Achievements Gallery

Gamification system with 12 unlockable achievements across Bronze, Silver, Gold, and Platinum tiers. Tracks streaks, conservation milestones, and behavioral goals.


๐Ÿ”ฅ Streak Progress & Milestones

Streak Progress

Achievement detail view showing progress tracking, unlock requirements, and sharing functionality. Motivates consistent water-saving habits.


โœจ Design Highlights:

  • Material Design 3 with custom color palette
  • Smooth animations and transitions
  • Dark mode support (system-aware)
  • Accessibility-first approach

๐Ÿš€ Features

๐Ÿ“ฑ Core Functionality

  • ๐Ÿšฟ Activity-based tracking - Log showers, taps, toilet flushes, laundry, dishes, garden watering
  • ๐Ÿงฎ Automatic calculations - Smart water usage estimates based on activity type and duration
  • ๐ŸŽฏ Daily goals & progress - Set conservation targets and track real-time performance
  • ๐Ÿ“ด Offline-first - Works without internet, syncs when connected via Supabase
  • ๐Ÿ”„ Real-time updates - LiveData & StateFlow ensure instant UI updates

๐ŸŽฎ Gamification

  • ๐Ÿ… Achievement system - Unlock badges for streaks, milestones, and efficient usage
  • ๐Ÿ”ฅ Streak tracking - Build daily conservation habits with visual streak counters
  • ๐Ÿ“ˆ Progress visualization - Beautiful charts and graphs with MPAndroidChart
  • ๐Ÿ”” Notifications - Celebrate achievements and receive daily reminders
  • ๐Ÿฅ‡ Tier system - Bronze, Silver, Gold, and Platinum achievements

๐ŸŒŽ Value Awareness

  • ๐Ÿ’ฌ Contextual insights - "You saved enough water to sustain a family for a week!"
  • ๐ŸŒ Real-world comparisons - Translate liters into tangible equivalents
  • ๐Ÿ“š Educational content - Water facts, conservation tips, best practices
  • ๐Ÿงฎ Impact calculator - Project savings from behavioral changes
  • ๐Ÿ“Š Weekly trends - Visual breakdown of usage patterns

๐Ÿ› ๏ธ Technology Stack

๐Ÿ“ฑ Android Development

  • Language: Kotlin 1.9.21
  • Min SDK: API 21 (Android 5.0 Lollipop) - 97%+ device coverage
  • Target SDK: API 34 (Android 14)
  • IDE: Android Studio (latest stable)
  • Build Tool: Gradle 8.2.1 with Kotlin DSL

๐Ÿ—๏ธ Architecture

  • Pattern: MVVM (Model-View-ViewModel)
  • Architecture Components:
    • ๐Ÿงฉ ViewModel - Lifecycle-aware UI state management
    • ๐Ÿ“ก LiveData & StateFlow - Observable data holders with reactive updates
    • ๐Ÿ—„๏ธ Room Database - Local SQLite abstraction (v2.6.1)
    • ๐Ÿงญ Navigation Component - Fragment navigation with SafeArgs (v2.7.6)
    • โš™๏ธ WorkManager - Background sync scheduling (v2.9.0)
    • ๐Ÿ”— Repository Pattern - Single source of truth for data

๐Ÿ“š Libraries & Dependencies

  • ๐ŸŽจ UI: Material Design 3 (v1.11.0), MotionLayout, ViewBinding
  • ๐Ÿ“Š Charts: MPAndroidChart (v3.1.0)
  • ๐ŸŒ Networking: Retrofit 2.9.0 + OkHttp 4.12.0
  • ๐Ÿ—„๏ธ Database: Room 2.6.1 + Supabase (cloud sync)
  • โšก Async: Kotlin Coroutines 1.7.3 + Flow
  • ๐Ÿ–ผ๏ธ Image Loading: Coil 2.5.0
  • ๐Ÿ’พ Preferences: DataStore 1.0.0
  • ๐Ÿงช Testing: JUnit 5, Espresso 3.5.1, MockK 1.13.8

โ˜๏ธ Backend & Cloud

  • Database: Supabase (PostgreSQL-based)
  • Authentication: Supabase Auth (email/password, social logins)
  • API: RESTful with Row Level Security
  • Real-time: Supabase Realtime subscriptions
  • Hosting: Supabase free tier (500MB DB, 2GB bandwidth/month)

๐Ÿ“ Project Structure

SaveOurWater/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ java/com/saveourwater/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SaveOurWaterApplication.kt       # App initialization
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ui/                              # ๐ŸŽจ UI layer (Fragments, Activities)
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ main/                        # MainActivity & Navigation
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ home/                        # ๐Ÿ  Dashboard Fragment
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ HomeFragment.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ HomeViewModel.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ RecentActivitiesAdapter.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ tracking/                    # ๐Ÿ“Š Water Tracking
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ TrackingFragment.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ TrackingViewModel.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ActivityAdapter.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ achievements/                # ๐Ÿ† Achievements (Phase 3)
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ insights/                    # ๐Ÿ’ก Insights (Phase 4)
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ onboarding/                  # ๐Ÿ‘‹ Onboarding (Phase 5)
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ data/                            # ๐Ÿ—‚๏ธ Data layer
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ local/                       # Room Database
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dao/                     # Data Access Objects
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ WaterActivityDao.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ EcoGoalDao.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ entities/                # Database entities
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ WaterActivity.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ EcoGoal.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ database/                # Database setup
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ AppDatabase.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ Converters.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ remote/                      # Supabase API
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ api/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ SupabaseApi.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ repository/                  # Repository pattern
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ WaterRepository.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ utils/                           # โš™๏ธ Utilities
โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ WaterCalculator.kt
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ res/                                 # ๐ŸŽจ Resources
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ layout/                          # XML layouts (9 files)
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ drawable/                        # Vector icons (13 files)
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ color/                           # Color selectors
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ values/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ colors.xml                   # Color palette (73 colors)
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ strings.xml                  # All UI text (123 strings)
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ themes.xml                   # Material Design 3 themes
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ navigation/                      # Navigation graph
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ menu/                            # Bottom navigation menu
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AndroidManifest.xml
โ”‚   โ”‚   โ”œโ”€โ”€ test/                                    # ๐Ÿงช Unit tests
โ”‚   โ”‚   โ””โ”€โ”€ androidTest/                             # ๐Ÿ“ฑ Instrumentation tests
โ”‚   โ”œโ”€โ”€ build.gradle.kts
โ”‚   โ””โ”€โ”€ proguard-rules.pro
โ”œโ”€โ”€ gradle/
โ”œโ”€โ”€ build.gradle.kts
โ”œโ”€โ”€ settings.gradle.kts
โ”œโ”€โ”€ gradle.properties
โ””โ”€โ”€ README.md

๐Ÿ“Š Current Implementation Stats

  • Total Files: 45 source files
  • Kotlin Files: 19 classes
  • XML Resources: 26 files
  • Vector Drawables: 13 custom icons
  • Lines of Code: ~3,500+ lines
  • Architecture: 100% MVVM with Repository pattern

๐ŸŽฏ Development Timeline

Duration: January 23 - February 13, 2026 (3 weeks)

โœ… Phase 1: Foundation (Jan 23-25) - COMPLETED

  • โœ… Project setup & Gradle configuration
  • โœ… Database schema (Room entities: WaterActivity, EcoGoal)
  • โœ… Supabase configuration
  • โœ… Material Design 3 theming (73 colors, custom styles)
  • โœ… Application class with notification channels

โœ… Phase 2: Core Tracking (Jan 26-30) - COMPLETED

  • โœ… MainActivity with Bottom Navigation
  • โœ… TrackingFragment with activity grid (6 activities)
  • โœ… TrackingViewModel with LiveData/StateFlow
  • โœ… WaterRepository (offline-first with sync)
  • โœ… WaterCalculator utility (usage estimation)
  • โœ… HomeFragment dashboard with stats cards
  • โœ… HomeViewModel with insights generation
  • โœ… RecentActivitiesAdapter with relative time
  • โœ… Navigation graph with 4 destinations
  • โœ… 13 custom vector icons (activities + navigation)

๐Ÿšง Phase 3: Gamification (Jan 31 - Feb 4) - IN PROGRESS

  • โณ Achievement system implementation
  • โณ Streak tracking logic
  • โณ Notifications for achievements
  • โณ AchievementsFragment UI

โณ Phase 4: Value Awareness (Feb 5-7) - PENDING

  • โณ Insights generation engine
  • โณ Educational content database
  • โณ Impact calculator
  • โณ InsightsFragment UI

โณ Phase 5: UI Polish (Feb 8-11) - PENDING

  • โณ MotionLayout animations
  • โณ Dark mode support
  • โณ Onboarding flow
  • โณ Edge-to-edge display
  • โณ Lottie animations for achievements

โณ Phase 6: Testing & Deployment (Feb 12-13) - PENDING

  • โณ Unit test suite (JUnit + MockK)
  • โณ UI tests (Espresso)
  • โณ APK generation with ProGuard
  • โณ Play Store assets preparation

๐Ÿ”ง Setup Instructions

๐Ÿ“‹ Prerequisites

  • โ˜• Android Studio: Latest stable version (Hedgehog or newer)
  • โ˜• JDK: Version 17+
  • ๐Ÿ“ฑ Android SDK: API 21+ (automatically installed by Studio)
  • ๐Ÿ”ง Git: For version control

๐Ÿš€ Installation

  1. Clone the repository
git clone https://github.com/judeprod/AppDev-Final-Project.git
cd AppDev-Final-Project
  1. Open in Android Studio
  • File โ†’ Open โ†’ Select project directory
  • Wait for Gradle sync to complete (may take 2-5 minutes)
  • If prompted, accept Android SDK licenses
  1. Configure Supabase (Optional - for cloud sync)
  • Create a Supabase account (free tier)
  • Create a new project
  • Copy your Project URL and Anon Key from Settings โ†’ API
  • Update gradle.properties:
supabase.anon.key=YOUR_SUPABASE_ANON_KEY_HERE
  1. Build and Run
  • Select an emulator (API 21+) or connected physical device
  • Click Run (โ–ถ๏ธ) or press Shift + F10
  • App should launch on your device/emulator

โš ๏ธ Troubleshooting

  • Gradle sync fails: Ensure you have JDK 17+ and stable internet
  • Build errors: Clean project with Build โ†’ Clean Project, then rebuild
  • Missing dependencies: Invalidate caches with File โ†’ Invalidate Caches โ†’ Invalidate and Restart

๐Ÿงช Testing

Unit Tests

# Run all unit tests
./gradlew test

# Run tests with coverage
./gradlew testDebugUnitTest jacocoTestReport

Instrumentation Tests

# Run UI tests (requires connected device/emulator)
./gradlew connectedAndroidTest

# Run specific test class
./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.saveourwater.ExampleTest

Code Quality

# Lint check
./gradlew lint

# Generate lint report
./gradlew lintDebug

๐Ÿ“ฑ Building APK

Debug Build

./gradlew assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apk

Release Build (Signed)

./gradlew assembleRelease
# Output: app/build/outputs/apk/release/app-release.apk
# Note: Requires keystore configuration in gradle.properties

Install on Device

# Install debug APK
adb install app/build/outputs/apk/debug/app-debug.apk

๐Ÿ“ Changelog

Version 1.3.0-beta (February 2, 2026)

๐Ÿ† Phase 3: Gamification & Engagement

Added:

  • โœจ Achievement System - Complete gamification framework with 12 unlockable achievements
  • โœจ AchievementManager - Progress tracking and automatic unlock logic
  • โœจ Achievement Notifications - Real-time notifications when achievements are unlocked
  • โœจ Streak Calculation - Proper consecutive day tracking algorithm
  • โœจ Achievements UI - Gallery screen with category tabs, progress cards, and detail bottom sheet
  • โœจ Share Achievements - Social sharing functionality for unlocked achievements
  • โœจ Home Streak Widget - Live streak counter on home dashboard

Achievements Implemented:

Tier Achievement Target
๐Ÿฅ‰ Bronze Getting Started 3-day streak
๐Ÿฅˆ Silver Week Warrior 7-day streak
๐Ÿฅ‡ Gold Two Week Champion 14-day streak
๐Ÿ’Ž Platinum Monthly Master 30-day streak
๐Ÿฅ‰ Bronze Drop Saver Save 100L
๐Ÿฅˆ Silver Water Guardian Save 500L
๐Ÿฅ‡ Gold Conservation Hero Save 1000L
๐Ÿ’Ž Platinum Planet Protector Save 5000L
๐Ÿฅ‰ Bronze First Drop Log 1 activity
๐Ÿฅ‰ Bronze Eco Starter 5 eco-mode uses
๐Ÿฅˆ Silver Goal Crusher 7 days under goal
๐Ÿฅˆ Silver Well Rounded Log all 6 types

New Files:

  • Achievement.kt - Room entity with category/tier enums
  • AchievementDao.kt - Flow-based DAO queries
  • AchievementDefinitions.kt - 12 predefined achievements
  • AchievementManager.kt - Progress checking & unlock logic
  • NotificationHelper.kt - Achievement unlock notifications
  • AchievementsFragment.kt - Achievements gallery screen
  • AchievementsViewModel.kt - Category filtering & progress
  • AchievementsAdapter.kt - Achievement cards with animations
  • AchievementDetailBottomSheet.kt - Detail view with sharing
  • 3 new layouts: fragment_achievements.xml, item_achievement.xml, dialog_achievement_detail.xml
  • 7 achievement icons

Modified Files:

  • AppDatabase.kt - Added Achievement entity, DAO, seeding callback (v1โ†’v2)
  • Converters.kt - Added AchievementCategory/Tier converters
  • WaterRepository.kt - Added streak calculation methods
  • SaveOurWaterApplication.kt - Added lazy-init DI for AchievementManager
  • HomeViewModel.kt - Connected streak widget to live data
  • colors.xml - Added success_light color

Technical Details:

  • Database version upgrade: 1 โ†’ 2 with destructive migration
  • Achievement seeding via Room database callback on first install
  • Streak algorithm tracks consecutive days (breaks on gaps)
  • Build verified with ./gradlew assembleDebug (successful)

Version 1.2.0-beta (February 2, 2026)

๐ŸŽจ UI Color Scheme Refinement

Updated:

  • ๐ŸŽจ Primary Color Palette - Replaced bright cyan-based colors with refined Twine.net blue palette
    • Primary 500: #00A8E8 โ†’ #628ECB (softer, more professional blue)
    • Primary 700: #006494 โ†’ #395886 (deeper navy for better contrast)
    • Primary 50-900: Complete gradient updated for visual consistency
  • ๐ŸŽจ Enhanced Visual Identity - New color scheme better represents water conservation theme
  • ๐ŸŽจ Improved Accessibility - Better color contrast ratios for text readability

Technical Details:

  • Updated colors.xml with 11 new primary color values
  • Maintained Material Design 3 color system structure
  • Preserved all secondary (green), warning, error, and neutral colors
  • Build verified with ./gradlew assembleDebug (successful)

Design Rationale:

  • Previous bright cyan (#00A8E8) was too vibrant for extended use
  • New palette (#628ECB) provides a calmer, more trustworthy appearance
  • Aligns with water conservation messaging (calm, thoughtful, sustainable)

Version 1.1.0-beta (January 26, 2026)

๐ŸŽ“ Enhanced Estimation Logic (Professor Feedback Implementation)

Added:

  • โœจ Behavioral Estimation Algorithm - Calculate water volume based on user habits instead of guessing
    • Formula: EstimatedVolume = (BaseFlowRate ร— PressureMultiplier ร— Duration) ร— ContinuityFactor
  • โœจ FlowPressure enum - Low (0.8x), Normal (1.0x), High (1.5x) multipliers
  • โœจ WaterSource enum - Shower (9 L/min), Bucket/Faucet (6 L/min) base rates
  • โœจ DetailedTrackingBottomSheet - New UI for detailed water usage tracking
  • โœจ Enhanced WaterCalculator - Added calculateEstimatedVolume() function
  • โœจ 4 New Input Components:
    • ๐Ÿšฟ Water Source Selector (Shower vs Bucket/Faucet)
    • ๐Ÿ’ง Flow Pressure Gauge (Low/Normal/High)
    • โ™ป๏ธ Eco-Mode Toggle (Intermittent water use reduces consumption by 40%)
    • โฑ๏ธ Duration Input (Minutes of water flow)

UI/UX:

  • ๐ŸŽจ dialog_detailed_tracking.xml - Material Design 3 bottom sheet layout
  • ๐ŸŽจ bg_eco_mode_card.xml - Custom background for eco-mode toggle
  • ๐ŸŽจ 12 new string resources for detailed tracking UI
  • ๐ŸŽจ Real-time volume calculation - Updates as user changes inputs

Technical Improvements:

  • โšก Integrated DetailedTrackingBottomSheet with TrackingFragment
  • โšก Added logDetailedActivity() to TrackingViewModel
  • โšก FAB now opens detailed tracking dialog instead of placeholder
  • โšก Activity logged with "Detailed tracking estimation" notes

Example Calculations:

  • Shower + High Pressure + 5 min + Continuous = 67.5 L
  • Bucket + Low Pressure + 10 min + Eco-Mode = 28.8 L
  • Shower + Normal + 3 min + Eco-Mode = 16.2 L

Documentation:

  • ๐Ÿ“š Updated CODE_REVIEW_PHASE2_CORE_TRACKING_FEATURES.md with PHASE2-FEAT-P1-023 task
  • ๐Ÿ“š Added implementation details and acceptance criteria

Version 1.0.0-beta (January 24, 2026)

๐ŸŽ‰ Phase 2 Implementation - Core Tracking Features

Added:

  • โœจ MainActivity with Material Design 3 bottom navigation
  • โœจ TrackingFragment with 6 activity types (Shower, Tap, Toilet, Laundry, Dishes, Garden)
  • โœจ TrackingViewModel with reactive LiveData/StateFlow for real-time updates
  • โœจ HomeFragment dashboard with today's usage, streak counter, and goal progress
  • โœจ HomeViewModel with contextual insights generation
  • โœจ WaterRepository implementing offline-first pattern with Room + Supabase sync
  • โœจ WaterCalculator utility with smart usage estimation (10 L/min shower, 7 L/min tap, etc.)
  • โœจ RecentActivitiesAdapter with relative time display ("2 hours ago", "Just now")
  • โœจ 13 custom vector icons for activities and navigation
  • โœจ Navigation graph with SafeArgs for type-safe navigation
  • โœจ Weekly usage chart placeholder (MPAndroidChart integration)

Database:

  • ๐Ÿ—„๏ธ Created WaterActivity entity with 8 fields (id, activityType, litersUsed, durationSeconds, timestamp, notes, syncedToCloud, cloudId)
  • ๐Ÿ—„๏ธ Created EcoGoal entity for daily water limits
  • ๐Ÿ—„๏ธ Implemented WaterActivityDao with 10 queries including Flow-based reactive queries
  • ๐Ÿ—„๏ธ Implemented EcoGoalDao for goal management
  • ๐Ÿ—„๏ธ Created AppDatabase singleton with TypeConverters for ActivityType enum

UI/UX:

  • ๐ŸŽจ Comprehensive color palette with 73 colors (primary blue gradient, conservation green, achievement tiers)
  • ๐ŸŽจ Material Design 3 themes with custom card, button, and text styles
  • ๐ŸŽจ Bottom navigation selector with color states
  • ๐ŸŽจ Splash screen background with water blue gradient
  • ๐ŸŽจ 9 XML layouts including responsive grids and cards

Resources:

  • ๐Ÿ“ 123 string resources for complete UI text
  • ๐ŸŽจ 13 vector drawables (ic_shower, ic_tap, ic_toilet, ic_laundry, ic_dishes, ic_garden, ic_custom, ic_home, ic_track, ic_achievements, ic_insights, ic_water_drop)
  • ๐Ÿ”ง gradle.properties with AndroidX and build optimizations

Technical Improvements:

  • โšก Kotlin Coroutines for async operations
  • โšก StateFlow for reactive UI updates
  • โšก ViewBinding enabled for null-safe view access
  • โšก Repository pattern for clean architecture
  • โšก Offline-first data strategy

Fixed:

  • ๐Ÿ› Missing drawable resources causing build failures
  • ๐Ÿ› Bottom navigation icon references
  • ๐Ÿ› Gradle configuration for KSP and Navigation SafeArgs

Version 0.1.0-alpha (January 23-25, 2026)

๐ŸŽŠ Phase 1 Implementation - Foundation & Architecture

Added:

  • โœจ Initial project setup with Kotlin 1.9.21 and AGP 8.2.1
  • โœจ MVVM architecture foundation with Android Architecture Components
  • โœจ Room Database configuration (v2.6.1)
  • โœจ Retrofit setup for Supabase API integration
  • โœจ Material Design 3 theming system
  • โœจ SaveOurWaterApplication class with notification channels
  • โœจ AndroidManifest with permissions (INTERNET, ACCESS_NETWORK_STATE, POST_NOTIFICATIONS, VIBRATE)
  • โœจ Comprehensive string resources (123 strings)
  • โœจ Color system with water blue and conservation green palettes
  • โœจ ProGuard rules for release builds

Dependencies Added:

  • ๐Ÿ“ฆ AndroidX Core KTX 1.12.0
  • ๐Ÿ“ฆ Material Components 1.11.0
  • ๐Ÿ“ฆ Navigation Component 2.7.6
  • ๐Ÿ“ฆ Room Database 2.6.1
  • ๐Ÿ“ฆ Retrofit 2.9.0 + OkHttp 4.12.0
  • ๐Ÿ“ฆ Kotlin Coroutines 1.7.3
  • ๐Ÿ“ฆ MPAndroidChart 3.1.0
  • ๐Ÿ“ฆ Coil 2.5.0
  • ๐Ÿ“ฆ DataStore 1.0.0
  • ๐Ÿ“ฆ WorkManager 2.9.0

Infrastructure:


Version 0.3.0-alpha (January 29, 2026)

๐ŸŽŠ Phase 3 Implementation - Coming Soon


๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create a feature branch (git checkout -b feature/AmazingFeature)
  3. ๐Ÿ’พ Commit your changes (git commit -m 'Add some AmazingFeature')
  4. ๐Ÿ“ค Push to the branch (git push origin feature/AmazingFeature)
  5. ๐Ÿ”€ Open a Pull Request

๐Ÿ“ Code Style Guidelines

  • Follow Kotlin Coding Conventions
  • Use meaningful variable and function names
  • Add KDoc comments for public APIs
  • Keep functions focused and under 20 lines when possible
  • Write unit tests for new features

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ“ž Contact

๐ŸŽ“ Project Team:

  • ๐Ÿ˜Ž Jay Arre Talosig - Machine Learning Engineer | Blockchain Developer
  • ๐ŸงŠ Jude Renwell B. Prodigalidad - Machine Learning Engineer | Mobile App Developer | Software Engineer
  • ๐ŸŽจ Diana Grace Paray - Digital Forensics Analyst | Software Engineer | UI/UX Designer
  • ๐Ÿ‘จโ€๐Ÿ’ป Kris Brian Diaz - Digital Forensics Analyst | Software Engineer | UI/UX Designer

๐Ÿ”— Links:


๐Ÿ™ Acknowledgments

  • ๐ŸŒ Inspiration: The global water crisis and the need for individual accountability
  • ๐ŸŽจ Design: Material Design 3 guidelines by Google
  • ๐Ÿ“š Libraries: Android Jetpack, Supabase, MPAndroidChart community
  • ๐ŸŽฏ Icons: Material Icons and custom vector designs
  • ๐Ÿ’ก Architecture: Android App Architecture Guide

๐ŸŒŸ Project Statistics

GitHub repo size
GitHub code size
GitHub contributors
GitHub last commit


๐Ÿ’ง Making water visible, valuable, and sustainable - one drop at a time. ๐ŸŒ

Built with โค๏ธ for a better planet


mystreak

mystreak

ย ย ย ย 

Languages

Kotlin100.0%

Contributors

Created January 23, 2026
Updated February 6, 2026