HeronFit is a Flutter-based mobile app built for the University of Makati gym. It streamlines gym operations and elevates the fitness experience for students, faculty, and staff by offering seamless session booking, real-time occupancy updates, personalized workout tracking, and tailored recommendations—all powered by a modern, scalable backend.
- Session Booking: Easily book gym sessions in advance.
- Real-time Occupancy: View current gym occupancy levels.
- Workout Tracking: Log your workouts, including exercises, sets, reps, and weight.
- Progress Monitoring: Track your fitness journey and achievements over time.
- Exercise Database: Browse and search a comprehensive database of exercises (powered by free-exercise-db).
- Recommended Workouts: Get personalized workout recommendations based on your goals and history (via external recommendation service).
- Custom Workouts: Create and save your own workout routines.
- Booking Management: View and manage your upcoming and past bookings.
- Notifications: Receive reminders and updates about your bookings and gym activities.
- Frontend: Flutter & Dart
- State Management: Riverpod
- Backend: Supabase (Authentication, PostgreSQL Database, Real-time Subscriptions)
- Recommendation Engine: External Python service (Flask/FastAPI) - Details in
docs/recommendation_engine_guide.md
- Prerequisites:
- Flutter SDK (See
pubspec.yamlfor version) - Dart SDK
- IDE (VS Code or Android Studio recommended)
- Supabase Account & Project
- Flutter SDK (See
- Clone the repository:
git clone <repository-url> cd heronfit
- Environment Setup:
- Create a
.envfile in theassets/directory. - Add your Supabase URL and Anon Key:
SUPABASE_URL=YOUR_SUPABASE_URL SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
- Create a
- Install Dependencies:
flutter pub get
- Run the App:
(Ensure you have a connected device or running emulator/simulator).
flutter run
This project follows a features-first architecture, organizing code by application features (e.g., auth, booking, workout). Core functionalities, shared widgets, and utilities are located in the lib/core/ and lib/widgets/ directories.