A modern Flutter mobile application for tracking daily water intake, designed to help users maintain proper hydration habits with beautiful UI and comprehensive insights.
β οΈ Demo Project Notice
This is a portfolio/demonstration project created for educational and showcase purposes only.
- Daily Water Tracking: Log water intake with customizable volumes and drink types
- Smart Goals: Automatic daily hydration goal calculation based on user profile
- Quick Add: Fast water intake logging with preset volumes
- Recent History: View recent water intake entries
- Daily Insights: Track today's progress with comparisons to yesterday
- Weekly Overview: Analyze weekly patterns, streaks, and performance
- Monthly Calendar: Visual monthly progress grid with goal achievement tracking
- Theme Support: Light and dark theme modes
- Custom Volumes: Add and edit personalized drink volumes with icons
- Unit Preferences: Support for different volumetric units
- Profile Management: User profile with weight and personal preferences
- Onboarding Flow: Guided setup for new users
- Modern UI: Clean, gradient-based design with smooth animations
- Responsive Design: Optimized for both Android and iOS
- Localization Ready: Multi-language support infrastructure
- Framework: Flutter 3.32.1+
- State Management: Riverpod with code generation
- Navigation: GoRouter for declarative routing
- Database: SQLite with sqflite
- Forms: Flutter Form Builder
- Storage: SharedPreferences for user settings
- Localization: Flutter's built-in internationalization
- Flutter SDK 3.32.3
- Android Studio / VS Code with Flutter extensions
- iOS development setup (for iOS builds)
-
Clone the repository
git clone <repository-url> cd hydrabuddy
-
Install dependencies
flutter pub get
-
Generate code (for Riverpod providers)
dart run build_runner build
-
Insert WeatherAPI Key into
lib/providers/weather.dartline:27 -
Run the app
flutter run
- Minimum SDK: API level 21 (Android 5.0)
- Target SDK: Latest stable version
- Minimum iOS version: 12.0
- Xcode 14.0 or higher required
- No special permissions required
lib/
βββ UI/ # Theme and UI configurations
βββ dialogs/ # Modal dialogs and overlays
βββ enum/ # Application enumerations
βββ extensions/ # Dart extensions for utilities
βββ l10n/ # Localization files
βββ models/ # Data models and entities
βββ pages/ # Screen/page widgets
βββ providers/ # Riverpod state providers
βββ router/ # Navigation configuration
βββ utils/ # Utility functions and helpers
βββ widgets/ # Reusable UI components
βββ app.dart # Main app configuration
βββ main.dart # Application entry point
βββ storage.dart # Database configuration
The app follows a cohesive design system with:
- Primary Color: Blue (#0570E1) with water-themed variations
- Typography: Material Design 3 text styles
- Layout: Consistent spacing (4px, 10px, 12px, 16px, 20px, 24px) and border radius
- Components: Gradient containers, cards with shadows, and modern form elements
The project uses code generation for Riverpod providers. Run the following command when adding new providers:
dart run build_runner build --delete-conflicting-outputsTo add new languages or update translations:
- Update
l10n.yamlconfiguration - Add new
.arbfiles inlib/l10n/ - Run
flutter gen-l10n
The app uses SQLite with custom migration handling. Database schema changes should be managed through the storage layer.
- Automatic daily goal calculation
- Progress tracking with percentage completion
- Daily, weekly, and monthly insights
- Streak tracking and performance metrics
- Comparative analysis with previous periods
This is a portfolio project, but feedback and suggestions are welcome! Please feel free to:
- Report bugs or issues
- Suggest new features
- Provide UI/UX feedback
This project is created for educational and portfolio purposes. Please respect the demo nature of this application.
- Flutter team for the amazing framework
- Material Design for UI guidelines
- Riverpod community for state management patterns
Built with β€οΈ using Flutter
