Selamat datang di repositori Aplikasi Mobile (Android) untuk proyek riset Sistem Informasi Pemantauan dan Pengendalian Level Air Berbasis IoT di RSA UGM. Repositori ini didedikasikan sepenuhnya untuk mengembangkan aplikasi smartphone reaktif bagi para operator lapangan rumah sakit.
Aplikasi ini dirancang khusus untuk bentuk vertikal pada mobilitas petugas. Aplikasi memberikan pembaruan status level tangki secara real-time dengan peringatan dini (early warning system) yang terintegrasi secara mulus melalui arsitektur Backend-for-Frontend (BFF).
- Pemantauan Real-time: Menampilkan status level tangki air secara presisi tanpa lag.
- Background Push Notifications: Menerima peringatan (WARNING/CRITICAL) secara instan meskipun aplikasi sedang ditutup/tidak aktif.
- Visualisasi Grafik: Riwayat penggunaan dan level air selama 24 jam terakhir.
- Bottom Sheet Control: Modul pemantauan detail tangki berskala besar yang mengadopsi prinsip single-lock UI.
- Framework Utama: React Native via Expo (Mempermudah development loop dan distribusi APK/AAB).
- Styling: Native StyleSheet / NativeWind (Tailwind CSS untuk React Native).
- State Management: Zustand (Sangat ringan dan sempurna untuk handling push data WebSocket).
- Visualisasi Grafik: react-native-chart-kit (Performa rendering mulus di perangkat mobile).
- Notifikasi: Expo Push Notifications / FCM (Dukungan background push).
- Integrasi API: Berkomunikasi langsung ke endpoint BFF Next.js di repositori Web.
- Authentication: Kredensial disahkan via BFF, token disandikan ketat ke dalam enkripsi bawaan OS (
SecureStore/EncryptedSharedPreferences). Dilarang menggunakan AsyncStorage. - Authorization: Penerapan Role-Based Access Control (RBAC) pada elemen antarmuka (misal: menyembunyikan panel pompa bagi Viewer).
- Accounting: Instruksi aksi kontrol dicatat transparan di server audit BFF.
Untuk menjaga kerapian riwayat repositori, seluruh anggota tim diwajibkan mengikuti alur dan konvensi commit berikut:
Alur Branching:
- Buat Branch Fitur (
feat/...ataufix/...): Setiap pengerjaan tugas baru wajib dilakukan di branch terpisah (misal:feat/bottom-sheet-uiataufix/push-notification). - Pull Request ke
dev: Setelah fitur selesai, ajukan Pull Request (PR) untuk digabungkan (merge) ke branchdev. Pastikan aplikasi berjalan normal di Expo Go tanpa error. - Rilis ke
main: Branchmainadalah versi produksi (Release). Penggabungan kemainhanya dilakukan dari branchdevapabila keseluruhan fitur siap di-build menjadi APK/AAB.
Format Pesan Commit: Gunakan format standar Conventional Commits:
feat: menambahkan setup Expo Push Notifications(Untuk fitur baru)fix: mengatasi lag pada chart tangki air(Untuk perbaikan bug)docs: memperbarui struktur folder di README(Untuk perubahan dokumentasi)style: merapikan margin pada komponen bottom sheet(Untuk perbaikan UI/CSS)
- Clone Repositori:
git clone https://github.com/Avin1731/frontend-mobile-rsa-ugm.git
- Instalasi Dependensi:
Gunakan
pnpm(direkomendasikan) untuk menginstal paket:cd frontend-mobile-rsa-ugm pnpm install - Menjalankan Aplikasi (Development):
Gunakan aplikasi Expo Go di smartphone Anda untuk memindai kode QR dan melihat pratinjau antarmuka.
pnpm start
Untuk melihat rincian fungsional dan spesifikasi Push Notification aplikasi ini, silakan merujuk pada file Kebutuhan Proyek (Requirements) di repositori ini.