Aplikasi mobile BundaCare untuk memantau asupan nutrisi ibu hamil dengan deteksi makanan.
BundaCare adalah aplikasi mobile yang dibangun menggunakan Flutter untuk membantu ibu hamil memonitor dan melacak asupan nutrisi harian mereka. Dengan fitur deteksi makanan menggunakan kcerdasan buatan (AI), aplikasi ini memudahkan pengguna untuk memastikan kebutuhan nutrisi janin dan dirinya terpenuhi dengan baik.
- Autentikasi Pengguna: Login dan registrasi mudah dengan Google OAuth menggunakan Supabase Auth.
- Deteksi & Pencatatan Makanan: Mengambil foto makanan, mengunggahnya ke Supabase Storage, dan menggunakan API eksternal (
fotota.site/predict) untuk mendeteksi nutrisi. - Log Nutrisi Harian: Menyimpan data nutrisi ke dalam tabel
food_logsdi Supabase. - Riwayat & Monitoring: Menampilkan ringkasan nutrisi harian dan riwayat lengkap yang bisa diakses per tanggal.
- Manajemen Profil: Pengguna dapat melihat dan memperbarui tanggal awal kehamilan mereka, yang digunakan untuk menghitung trimester.
- UI & UX Modern: Menggunakan desain yang bersih, dark mode, dan navigasi yang intuitif.
Berikut adalah beberapa tampilan utama dari aplikasi BundaCare:
Tampilan Home Screen dengan ringkasan nutrisi harian.
Tampilan Modal Deteksi Makanan.
Aplikasi ini dibangun dengan mengikuti Clean Architecture untuk memastikan kode yang terstruktur, mudah diuji, dan scalable.
- Framework: Flutter (versi terbaru)
- Backend as a Service (BaaS): Supabase
- Supabase Auth (Google OAuth)
- Supabase Database (PostgreSQL)
- Supabase Storage
- Arsitektur: Clean Architecture
- State Management: BLoC (Business Logic Component)
- Navigasi: GoRouter
- Dependency Injection: get_it
- Networking: dio
- Assets & Styling:
- flutter_svg
- iconsax
- Font kustom: Poppins
- Native Tools:
Berikut adalah gambaran singkat struktur direktori yang digunakan:
lib/
├── core/
│ ├── config/ # Konfigurasi aplikasi (router, dll)
│ ├── injection_container.dart # Dependency Injection
│ ├── services/ # Service eksternal (Supabase, Nutrition)
│ └── utils/ # Fungsi utilitas
│
├── data/
│ ├── datasources/ # Implementasi sumber data (remote API)
│ ├── models/ # Konversi data (JSON ke model)
│ └── repositories/ # Implementasi repository
│
├── domain/
│ ├── entities/ # Class data inti aplikasi
│ ├── repositories/ # Kontrak repository (abstraksi)
│ └── usecases/ # Logika bisnis inti
│
└── presentation/
├── bloc/ # State management (BLoC)
├── screens/ # Tampilan/halaman aplikasi
└── widgets/ # Widget yang bisa digunakan kembali
-
Clone repositori:
git clone https://github.com/your-username/bundacare.git cd bundacare -
Dapatkan dependensi:
flutter pub get
-
Konfigurasi Supabase:
- Siapkan proyek Supabase Anda.
- Buat file
main.dartAnda dan gantiYOUR_SUPABASE_URLdanYOUR_SUPABASE_ANON_KEYdengan kunci Anda.
-
Jalankan aplikasi:
flutter run
- Autentikasi Google dengan Supabase.
- Struktur proyek Clean Architecture.
- Navigasi dengan GoRouter.
- Tampilan Home Screen dengan ringkasan nutrisi & riwayat.
- Tampilan Profile Screen dengan menu dan fungsionalitas update tanggal kehamilan.
- Tampilan Camera Screen dengan kontrol modern.
- Alur deteksi makanan (ambil gambar -> API -> tampilkan hasil).
- Alur penyimpanan log makanan ke Supabase.
- Konfigurasi ikon aplikasi dan splash screen.
- Implementasi halaman notifikasi.
- Implementasi halaman riwayat penyakit dan FAQ.
- Tambahkan fungsionalitas edit profil pengguna.
- Menerapkan testing (unit, widget, dan integration testing) untuk BLoC dan use cases.