Skip to content

rapoii/Valina

Repository files navigation

🌸 Vanila

Aplikasi pelacak siklus menstruasi & kesehatan reproduksi wanita
Desain terinspirasi Apple Human Interface Guidelines

Flutter Dart Firebase License


✨ Fitur Utama

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

📱 Screenshots

Coming soon — screenshots akan ditambahkan setelah UI final


🏗️ Arsitektur

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

🛠️ Tech Stack


🚀 Cara Setup & Jalankan

1. Clone repo

git clone https://github.com/rapoii/vanila.git
cd vanila

2. Setup Firebase

File 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 configure

Atau copy file contoh dan isi manual:

cp lib/firebase_options.dart.example lib/firebase_options.dart
# Edit firebase_options.dart dengan config Firebase kamu

2.1 Setup OpenRouter API Key (untuk Chat AI)

Fitur 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_here

3. Install dependencies

flutter pub get

4. Jalankan

flutter run

📦 Build APK Release

# 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

🔒 Keamanan & Privasi

  • File google-services.json, lib/firebase_options.dart, android/key.properties, dan .jks tidak di-commit ke repo.
  • Data siklus disimpan secara private di Firestore dengan rules per-user.
  • Autentikasi menggunakan Firebase Auth yang telah diverifikasi Google.

🤝 Kontribusi

Pull request sangat diterima! Untuk perubahan besar, buka issue terlebih dahulu.

  1. Fork repo
  2. Buat branch fitur: git checkout -b feat/nama-fitur
  3. Commit: git commit -m 'feat: tambah fitur X'
  4. Push: git push origin feat/nama-fitur
  5. Buka Pull Request

📄 Lisensi

Distributed under the MIT License. See LICENSE for more information.


Made with ❤️ by rapoii

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages