A mobile hydration reminder app built with Ionic React and Capacitor. Stay hydrated throughout the day with scheduled water reminders and track your hydration habits.
Hydrate Now is an iOS application that helps you build healthy hydration habits by:
- Scheduled Reminders: Set custom times for daily water intake reminders
- Smart Notifications: Receive recurring notifications to remind you to drink water
- Habit Tracking: Log whether you completed each reminder (drank water or skipped)
- Statistics & Analytics: View your hydration completion rate and history over various time periods
- Flexible Filtering: Filter history by status (completed/skipped/pending) and date ranges (week, month, year, all time)
The app uses local notifications that repeat daily at your specified times, and all data is stored locally on your device using Capacitor Preferences.
- Framework: React 19 with TypeScript
- UI Components: Ionic 8
- Native Bridge: Capacitor 7
- Build Tool: Vite
- Testing: Vitest (unit tests), Cypress (e2e tests)
- Storage: Capacitor Preferences API (local storage)
- Notifications: Capacitor Local Notifications
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm
- Xcode (for iOS development) - Latest version recommended
- CocoaPods (for iOS dependencies)
# Clone the repository
git clone https://github.com/jv18creator/hydrate-now.git
cd hydrate-now
# Install dependencies
npm install
# Start the development server
ionic serve
This will start a Vite dev server at http://localhost:8100
. You can develop and test the UI in your web browser.
Then build and run from Xcode, or use:
# Run on connected device or simulator
ionic cap run ios --livereload --external
# Build optimized web assets
ionic build
# Sync to iOS
ionic cap sync ios
# if you're a part of Apple's developer program: Open Xcode to archive and distribute
ionic cap open ios
# else connect your physical device with developer mode enabled & run
ionic cap run ios
This project is free and open source. Feel free to use, modify, and distribute it.