Banua Insight adalah aplikasi berita berbasis Flutter yang terintegrasi dengan Firebase. Aplikasi ini mendukung alur autentikasi, membaca berita secara realtime, melihat detail berita, menambah dan mengelola berita, serta fitur like dan bookmark untuk pengguna.
Aplikasi ini dirancang untuk dua jenis pengguna:
- Admin yang dapat menambah, mengedit, dan menghapus berita.
- User yang dapat membaca berita, mencari berita, memberi like, dan menyimpan berita ke bookmark.
Data berita disimpan di Firestore dan ditampilkan secara realtime melalui stream. Autentikasi menggunakan Firebase Authentication, sedangkan data profil dan interaksi pengguna disimpan di Firestore.
- Autentikasi login dan register menggunakan Firebase Authentication.
- Splash screen sebagai halaman pembuka aplikasi.
- Homepage berita dengan daftar rekomendasi dan berita viral.
- Detail berita lengkap dengan navigasi ke aksi edit dan hapus.
- Tambah berita untuk admin.
- Edit berita untuk admin.
- Hapus berita dengan dialog konfirmasi dan notifikasi sukses.
- Search berita.
- Like berita.
- Bookmark atau simpan berita.
- Halaman profil pengguna.
- Riwayat baca dan daftar simpan untuk user.
- Pengambilan data berita realtime dari Firestore.
- Flutter
- Dart
- Firebase Core
- Firebase Authentication
- Cloud Firestore
- intl untuk format tanggal lokal Indonesia
- shared_preferences untuk penyimpanan lokal
Berikut ringkasan struktur folder utama yang digunakan di project ini:
lib/
main.dart
firebase_options.dart
data/
models/
services/
features/
login/
home_page/
news_detail/
add_news/
search_news/
profile/
save/
user/
assets/
img/
android/
ios/
web/
windows/
linux/
macos/
test/
- Aplikasi dijalankan dan menampilkan splash screen.
- User masuk ke halaman login atau register.
- Setelah login berhasil, user melihat homepage berita.
- Homepage menampilkan data berita dari Firestore secara realtime.
- User dapat membuka detail berita untuk membaca isi lengkap.
- Admin dapat menambah, mengedit, atau menghapus berita.
- User dapat memberikan like atau menyimpan berita ke bookmark.
- User dapat membuka halaman pencarian untuk mencari berita tertentu.
Project ini memakai beberapa koleksi utama di Firestore.
Menyimpan data artikel berita.
Field yang umum dipakai:
id_beritaid_user_adminnama_adminjuduldeskripsiisi_kontenimg_urlcreated_atlikes_count
Menyimpan data user yang login.
Field yang umum dipakai:
id_userusernamerolepasswordemailsavedNewsphotoUrlnama
Menyimpan data like berita.
Field yang umum dipakai:
id_userid_beritacreated_at
Menyimpan data berita yang disimpan user.
Field yang umum dipakai:
id_userid_beritacreated_at
Jalankan perintah berikut di root project:
flutter pub getProject ini sudah memakai firebase_options.dart dan file konfigurasi Android Firebase. Pastikan:
android/app/google-services.jsonsudah sesuai dengan project Firebase.lib/firebase_options.dartsesuai dengan konfigurasi Firebase terbaru.- Authentication dan Firestore sudah aktif di Firebase Console.
flutter devicesUntuk Android emulator atau perangkat fisik:
flutter runUntuk web:
flutter run -d chrome- Buka project di VS Code.
- Jalankan
flutter pub get. - Pastikan Firebase sudah tersambung.
- Jalankan
flutter runatau pilih device target dari VS Code. - Tunggu aplikasi selesai build, lalu login menggunakan akun yang tersedia.
Pengguna dapat membuat akun baru atau masuk menggunakan email dan password. Data akun disimpan ke Firebase Authentication dan detail profil disimpan ke Firestore.
Homepage menampilkan:
- Logo Banua Insight.
- Rekomendasi berita.
- Daftar berita viral.
- Bottom navigation untuk berpindah ke cari dan tambah berita.
Halaman tambah berita digunakan untuk membuat artikel baru. Setelah data dikirim, berita akan langsung tersimpan ke Firestore dan tampil di homepage realtime.
Halaman detail menampilkan isi lengkap berita dan menjadi tempat akses fitur edit, hapus, like, dan bookmark.
User dapat memberi like atau menyimpan berita. Data interaksi ini disimpan di koleksi likes dan bookmarks.
Fitur pencarian digunakan untuk mencari berita berdasarkan kata kunci.
Halaman profil menampilkan informasi akun pengguna dan menjadi area untuk pengelolaan data akun.
Project ini memiliki service utama di layer data:
AuthServiceuntuk register, login, logout, dan mengambil data user aktif.NewsServiceuntuk mengambil berita realtime, tambah berita, edit berita, hapus berita, like, bookmark, dan membaca data simpanan user.
Beberapa file dokumentasi yang bisa dibaca jika ingin detail fitur per halaman:
DOKUMENTASI_AUTENTIKASI.mdDOKUMENTASI_HOMEPAGE.mdDOKUMENTASI_HAPUS_BERITA.mdDOKUMENTASI_LIKE_BOOKMARK.mdDOKUMENTASI_NAVIGASI_HALAMAN.md
Periksa apakah file konfigurasi Firebase sudah sesuai dan service Firebase sudah diaktifkan di console.
Pastikan koleksi berita sudah ada di Firestore dan field created_at terisi dengan format timestamp yang benar.
Pastikan img_url berisi URL valid yang bisa diakses dari browser.
Periksa apakah email dan password benar, serta pastikan Authentication sudah diaktifkan di Firebase.
Project ini masih bisa dikembangkan lebih lanjut, misalnya dengan:
- validasi form yang lebih ketat,
- role-based routing yang lebih rapi,
- pagination untuk daftar berita,
- optimasi tampilan untuk tablet atau web,
- penyimpanan media berita ke Firebase Storage.
Project ini digunakan untuk pengembangan aplikasi Banua Insight dan belum memiliki lisensi publik khusus.