Visualisasi dinamis arsitektur, model data, dan alur logika aplikasi.
Dibangun dengan Streamlit untuk UI interaktif.
Menggunakan Firebase Firestore untuk data real-time.
Dihosting di Streamlit Community Cloud.
Menyimpan semua detail laporan yang masuk. Setiap dokumen adalah satu laporan.
"id": "A1B2C3D4",
"nama": "Anonim",
"jenis_pelanggaran": "Korupsi",
"status": "Baru",
"risk_score": 85,
...
Menyimpan riwayat percakapan. Terstruktur secara nested untuk setiap laporan.
"sender": "Pengelola",
"text": "Terima kasih atas laporannya...",
"timestamp": serverTimestamp()
Aplikasi dimulai dan terhubung ke Firebase menggunakan kredensial dari `st.secrets`.
👤 Pelapor mengisi formulir. Saat dikirim, data disimpan ke koleksi `reports` di Firestore.
👤 Pelapor memasukkan ID Laporan. Aplikasi memuat chat dari `chats/{ID_LAPORAN}`. Pesan baru disimpan dengan `sender: "Pelapor"`.
🛡️ Pengelola membuka daftar laporan. Setiap laporan memiliki antarmuka chat yang terhubung. Pesan baru disimpan dengan `sender: "Pengelola"`.