Aplikasi pelacak siklus menstruasi & kesehatan reproduksi wanita
Desain terinspirasi Apple Human Interface Guidelines
| Fitur | Deskripsi |
|---|---|
| 📅 Kalender Siklus | Visualisasi siklus haid bulanan dengan prediksi otomatis |
| 📊 Insights & Grafik | Analisis panjang siklus, pola, dan tren kesehatan |
| 📝 Daily Log | Catat mood, gejala, dan intensitas aliran setiap hari |
| 🔔 Notifikasi Cerdas | Pengingat haid, ovulasi, dan jadwal lainnya |
| 👫 Fitur Pasangan | Hubungkan akun dengan pasangan via kode unik |
| 🔐 Autentikasi Aman | Login via Email/Password atau Google Sign-In |
| 🤖 AI Assistant | Chat dengan AI untuk konsultasi kesehatan reproduksi |
| 🌙 Desain iOS-style | UI frosted glass, Cupertino widgets, dark/light mode |
| ⚡ Performance Optimized | Device tier detection, 60fps+ smooth animations |
Coming soon — screenshots akan ditambahkan setelah UI final
Project ini menggunakan Feature-first architecture dengan Riverpod sebagai state management.
lib/
├── core/
│ ├── theme/ # AppColors, AppTheme, AppTypography
│ ├── utils/ # CycleCalculator, date helpers, device tier detection
│ └── widgets/ # GlassContainer, PrimaryButton, CycleRing, dsb.
├── data/
│ ├── models/ # Cycle, DayLog, UserProfile, enums
│ └── repositories/ # CycleRepository, LogRepository, dsb.
├── features/
│ ├── auth/ # Login, Sign Up, Google Sign-In
│ ├── calendar/ # Kalender siklus bulanan
│ ├── chat/ # AI Assistant untuk konsultasi kesehatan
│ ├── insights/ # Grafik & artikel kesehatan
│ ├── logging/ # Log harian (mood, gejala, flow)
│ ├── notifications/ # Notifikasi lokal
│ ├── onboarding/ # Onboarding multi-step
│ ├── partner/ # Fitur pasangan (kode link)
│ ├── profile/ # Profil & pengaturan
│ ├── splash/ # Splash screen dengan animasi
│ └── today/ # Dashboard utama
└── routing/ # GoRouter, MainShell
- Framework — Flutter 3.x
- State Management — flutter_riverpod ^2.6
- Routing — go_router ^14
- Backend — Firebase Auth + Cloud Firestore
- Auth Provider — Google Sign-In
- Notifikasi — flutter_local_notifications
- Charts — fl_chart
- Fonts — google_fonts
git clone https://github.com/rapoii/vanila.git
cd vanilaFile google-services.json dan lib/firebase_options.dart tidak di-include di repo karena bersifat sensitif.
# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Login ke Firebase
firebase login
# Generate konfigurasi Firebase untuk project kamu
flutterfire configureAtau copy file contoh dan isi manual:
cp lib/firebase_options.dart.example lib/firebase_options.dart
# Edit firebase_options.dart dengan config Firebase kamuFitur AI Assistant membaca API key dari --dart-define:
flutter run --dart-define=OPENROUTER_API_KEY=your_key_here
flutter build apk --release --split-per-abi --dart-define=OPENROUTER_API_KEY=your_key_hereflutter pub getflutter run# APK terpisah per arsitektur (lebih kecil)
flutter build apk --release --split-per-abi
# Output:
# build/app/outputs/flutter-apk/app-arm64-v8a-release.apk ← HP modern
# build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk ← HP lama
# build/app/outputs/flutter-apk/app-x86_64-release.apk ← Emulator- File
google-services.json,lib/firebase_options.dart,android/key.properties, dan.jkstidak di-commit ke repo. - Data siklus disimpan secara private di Firestore dengan rules per-user.
- Autentikasi menggunakan Firebase Auth yang telah diverifikasi Google.
Pull request sangat diterima! Untuk perubahan besar, buka issue terlebih dahulu.
- Fork repo
- Buat branch fitur:
git checkout -b feat/nama-fitur - Commit:
git commit -m 'feat: tambah fitur X' - Push:
git push origin feat/nama-fitur - Buka Pull Request
Distributed under the MIT License. See LICENSE for more information.
Made with ❤️ by rapoii