CAMPUS LOST & FOUND ✳ BARANG BALIK, MOOD NAIK #BalikKePemilik
LOST & FOUND UIN WALISONGO / PROPOSAL KELOMPOK 5 · 4 dari 11

Alur Utama & Arsitektur

Aplikasi Android untuk melaporkan, mencari, dan mengembalikan barang hilang di lingkungan UIN Walisongo, dengan integrasi Firebase.

Alur Utama & Arsitektur

Arsitektur aplikasi

Aplikasi dikembangkan dengan pola MVVM (Model-View-ViewModel) pada klien Android native (Kotlin). Pola ini memisahkan antarmuka pengguna (Presentation Layer), logika pengolahan data (ViewModel), dan sumber data (Data Layer), sehingga pengembangan lebih rapi dan mudah dipelihara.

Seluruh aliran data jarak jauh bertumpu pada layanan Firebase (Authentication, Firestore, dan Storage), sedangkan penyimpanan lokal memakai SQLite dan SharedPreferences. Lapisan Repository menjadi satu-satunya pintu komunikasi (Single Source of Truth) yang menjembatani ViewModel dengan sumber data tersebut.

Lapisan arsitektur

Lapisan Komponen Fungsi
Presentation Activity, Fragment, RecyclerView Adapter Menampilkan UI dan menerima input
ViewModel AuthViewModel, LaporanViewModel, KlaimViewModel (LiveData) Menyimpan state dan logika tampilan
Repository AuthRepository, LaporanRepository, KlaimRepository Satu pintu data; memanggil Firebase dan mengelola cache
Remote: Firebase Cloud Firestore, Authentication, Storage, Cloud Messaging Data laporan real-time, akun, foto, notifikasi
Data lokal SQLite, SharedPreferences Cache laporan, draf, bookmark, sesi, tema
Perangkat dan iklan Kamera, AdMob SDK Foto, iklan

Alur data real-time (daftar laporan)

  1. Fragment daftar mengamati LiveData dari LaporanViewModel.
  2. LaporanRepository memasang snapshot listener pada koleksi items di Firestore.
  3. Saat ada laporan baru atau perubahan, Firestore mengirim pembaruan ke aplikasi.
  4. Repository meneruskan data ke ViewModel dan menyalin cache ke SQLite.
  5. RecyclerView menampilkan perubahan otomatis (DiffUtil).
  6. Jika offline, daftar diambil dari cache sampai koneksi kembali.

Alur klaim dan notifikasi

  1. Pengklaim mengisi jawaban verifikasi, lalu KlaimRepository menulis dokumen baru ke koleksi claims.
  2. Listener pada koleksi claims milik pelapor menerima perubahan secara real-time dan menampilkan klaim baru.
  3. Pelapor menyetujui atau menolak; status pada claims dan items diperbarui dalam satu transaksi.
  4. Semua pengguna yang membuka laporan tersebut melihat status berubah otomatis.
  5. Notifikasi dikirim lewat Firebase Cloud Messaging, atau lewat listener di dalam aplikasi bila pengiriman otomatis dari server tidak tersedia pada paket yang dipakai.

Struktur data

Koleksi Field utama
users uid, nim, nama, email, role (mahasiswa atau admin), fcm_token
items id, tipe (Kehilangan atau Ditemukan), nama_barang, kategori, deskripsi, lokasi_teks, foto_url, tanggal, kontak, status (Aktif, Diklaim, Selesai), pelapor_id, dibuat_pada
claims id, item_id, pengklaim_id, jawaban_verifikasi, status
pickup_points id, nama, keterangan, jam_operasional
Aturan keamanan (Security Rules) ringkas: hanya pengguna login yang boleh membaca data; laporan hanya bisa diubah atau dihapus oleh pembuatnya atau admin; klaim hanya bisa dibaca oleh pengklaim dan pelapor; hanya admin yang boleh mengelola titik serah.

← Kembali ke Beranda