A Flutter application for tracking daily habits with gamification features.
- ✅ User Authentication
- ✅ Habit Tracking
- ✅ Progress Visualization
- ✅ Offline Functionality
- ✅ Data Synchronization
- ✅ Responsive Design
- ✅ Dark/Light Theme
- ✅ Gamification (XP, Levels, Achievements)
-
Prerequisites
- Flutter SDK (version 3.27.1)
- Dart SDK
- Node.js & npm
- Android Studio / VS Code
- Git
-
Clone the Repository
git clone https://github.com/sam-baraka/habit_tracker.git cd habit_tracker
-
Install Dependencies
flutter pub get
-
Firebase Setup
# Install FlutterFire CLI dart pub global activate flutterfire_cli # Install Firebase CLI npm install -g firebase-tools # Login to Firebase firebase login # Configure Firebase for your Flutter app flutterfire configure --project=your-project-id # This will: # - Create a new Firebase project (or select existing) # - Add Android & iOS & Web apps # - Download and add config files automatically # - Generate firebase_options.dart
-
Run the App
flutter run
-
Run Tests
flutter test
-
Generate Coverage Report
flutter test --coverage
Our CI/CD pipeline is implemented using GitHub Actions and consists of three main jobs:
- Runs on Ubuntu latest
- Sets up Flutter 3.27.1
- Gets dependencies
- Runs tests with coverage
- Uploads coverage report as artifact
- Triggers after successful tests
- Builds web version
- Builds Android APK
- Deploys to Firebase hosting
- Uploads APK as artifact
- Creates GitHub release
- Uploads APK to release
- Automatically versions releases (v1.0.x)
- Activates on push to main branch
- Requires following secrets:
- FIREBASE_TOKEN
- GTH_TKN (GitHub Token)
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.