|
Download software.md from Ilnaa/SiPerak: direct link, hf CLI and curl.
- Browser
- Download file 10.2 kB
-
https://huggingface.co/spaces/Ilnaa/SiPerak/resolve/main/software.md
- Command line
-
hf download hf://spaces/Ilnaa/SiPerak/software.md
-
curl -L -o software.md https://huggingface.co/spaces/Ilnaa/SiPerak/resolve/main/software.md
10.2 kB
| # Dokumentasi Rekayasa Perangkat Lunak: Desain Antarmuka (UI) & Alur Kerja (Web Flow) | |
| Dokumen ini mendefinisikan arsitektur antarmuka pengguna (*User Interface*), pola desain (*Design Pattern*), dan alur navigasi (*Web Flow*) untuk Sistem Pengaduan Digital. Perancangan ini ditujukan untuk memberikan panduan teknis yang presisi bagi tim pengembang (*Frontend Engineer* dan *UI/UX Designer*) dalam mengimplementasikan sistem. | |
| --- | |
| ## 1. Pola Desain Arsitektur Antarmuka (*UI Design Patterns*) | |
| Sistem ini mengadopsi beberapa pola desain standar industri untuk menjamin skalabilitas, maintainability, dan performa aplikasi: | |
| ### A. Component-Based Architecture (Atomic Design) | |
| Antarmuka dibangun menggunakan pendekatan modular di mana setiap elemen UI dipecah menjadi komponen independen yang dapat digunakan kembali (*reusable*): | |
| * **Atoms:** Elemen dasar UI yang tidak dapat dipecah lagi (contoh: `Button`, `InputText`, `BadgeStatus`, `SpinnerLoading`). | |
| * **Molecules:** Gabungan beberapa atoms yang membentuk satu kesatuan fungsi (contoh: `SearchGroup` yang terdiri dari `InputText` dan `Button`). | |
| * **Organisms:** Komponen kompleks yang membentuk bagian dari halaman (contoh: `Navbar`, `Sidebar`, `TableLaporan`, `FormAduan`). | |
| * **Templates & Pages:** Susunan organisms dalam tata letak (*layout*) tertentu yang merepresentasikan halaman utuh aplikasi. | |
| ### B. MVVM (Model-View-ViewModel) Pattern / State Management Centralized | |
| Untuk memisahkan logika bisnis dengan presentasi UI, terutama pada implementasi *Single Page Application* (SPA): | |
| * **View:** Komponen deklaratif UI (HTML/JSX) yang menangani rendering data ke layar. | |
| * **ViewModel / State:** Mengelola kondisi data lokal (*reactive state*), penanganan *event* pengguna, dan komunikasi dengan *API Service Layer*. | |
| * **Model:** Representasi skema data objek (contoh: `User`, `Laporan`, `Statistik`). | |
| ### C. Container-Presenter Pattern | |
| Komponen dipisahkan menjadi dua kategori: | |
| 1. **Container Components (Smart):** Mengatur penarikan data (*data fetching*), pengelolaan state manajemen, dan logika fungsional. | |
| 2. **Presenter Components (Dumb):** Hanya menerima data melalui *properties/props* dan merendernya ke UI tanpa mengetahui asal-usul data tersebut. Menjamin tingkat reusabilitas yang tinggi. | |
| --- | |
| ## 2. Struktur Tata Letak Utama (*Global Layout Structure*) | |
| Sistem ini dibagi menjadi dua area tata letak utama berdasarkan hak akses pengguna: | |
| ### Layout A: Public & Masyarakat Layout (Responsive Clean Grid) | |
| * **Header / Navigation Bar:** Berisi logo sistem, menu navigasi utama (Beranda, Statistik, Panduan), serta tombol aksi "Masuk" dan "Daftar". | |
| * **Main Content Area:** Menggunakan kontainer terpusat (*max-width Container*) dengan pendekatan sistem *Grid* (12 kolom) yang fleksibel untuk perangkat desktop, tablet, maupun mobile. | |
| * **Footer:** Berisi informasi hak cipta, kontak instansi, dan tautan sosial media resmi. | |
| ### Layout B: Admin Dashboard Layout (Fixed Sidebar Grid) | |
| * **Sidebar (Navigation Panel):** Terpasang tetap di sisi kiri layar (*fixed positional*). Berisi profil singkat admin, menu manajemen (Dashboard, Verifikasi Laporan, Distribusi Kerja, Statistik Analitik), dan tombol keluar. | |
| * **Top Header:** Berisi indikator status koneksi, panel notifikasi real-time, dan informasi tanggal sistem. | |
| * **Content Canvas:** Area dinamis di sisi kanan sidebar untuk memuat tabel data tabel, grafik analitik, atau formulir verifikasi dokumen dengan kapabilitas *scrolling* independen. | |
| --- | |
| ## 3. Spesifikasi Tampilan Antarmuka Halaman (*UI Page Descriptions*) | |
| ### Halaman 1: Beranda & Landing Page (Akses: Publik) | |
| * **Hero Section:** Judul utama aplikasi "Sistem Pengaduan Digital Masyarakat", deskripsi singkat, serta tombol *Call to Action* (CTA) utama yang mengarah langsung ke formulir pengaduan. | |
| * **Section Alur Kerja:** Infografis langkah mudah melapor (Tulis -> Verifikasi -> Tindak Lanjut -> Selesai). | |
| * **Section Statistik Singkat:** Widget interaktif menampilkan total aduan masuk dan persentase penyelesaian saat ini. | |
| ### Halaman 2: Autentikasi - Login & Register (Akses: Publik) | |
| * **Formulir Pendaftaran (UC-01):** Input teks terstruktur untuk Nama Lengkap, Alamat Email, Nomor Telepon, Kata Sandi, dan Konfirmasi Kata Sandi. Dilengkapi dengan indikator validasi *real-time* (kekuatan password dan keunikan email). | |
| * **Formulir Masuk:** Input Email dan Kata Sandi dengan mekanisme proteksi serangan *Brute Force* (reCAPTCHA v3 terintegrasi). | |
| ### Halaman 3: Ruang Kerja Masyarakat (Akses: Masyarakat Terautentikasi) | |
| * **Dashboard Riwayat:** Tabel dinamis (*Data Table*) yang menampilkan daftar pengaduan pribadi. Kolom terdiri dari ID Laporan, Judul Aduan, Tanggal Kirim, Kategori, dan `BadgeStatus` warna (Kuning: Menunggu, Biru: Terverifikasi, Ungu: Didistribusikan, Hijau: Selesai). | |
| * **Formulir Pembuatan Laporan Baru (UC-02):** | |
| * Input Judul (Teks baris tunggal, maks. 100 karakter). | |
| * Dropdown Kategori (Infrastruktur, Pelayanan Publik, Keamanan, Kesehatan, dll.). | |
| * Area Teks Deskripsi (Teks multi-baris kaya komponen teks mentah). | |
| * Komponen Drag-and-Drop Lampiran (Mendukung berkas JPG/PNG/PDF, maks. 5MB). | |
| * **Formulir Edit Laporan (UC-03):** Replikasi dari formulir pembuatan laporan, namun memuat data lama secara otomatis (*pre-populated data*) dan hanya aktif jika status laporan masih "Menunggu". | |
| ### Halaman 4: Ruang Kerja Admin - Control Panel (Akses: Admin) | |
| * **Dashboard Utama:** Kumpulan ringkasan matriks berupa kartu indikator (*KPI Cards*) untuk memantau metrik operasional secara waktu nyata. | |
| * **Halaman Verifikasi & Distribusi (UC-04 & UC-05):** Komponen *Split-Screen View*. Sisi kiri menampilkan daftar antrean laporan masuk, sisi kanan menampilkan detail dokumen laporan yang dipilih secara instan lengkap dengan tombol aksi "Setujui Verifikasi" atau "Tolak" serta dropdown instansi tujuan distribusi. | |
| * **Halaman Manajemen Status (UC-08):** Panel entri data log aktivitas di mana admin dapat memilih *dropdown* status operasional terbaru disertai kolom catatan tindak lanjut yang akan dikirim ke pelapor. | |
| ### Halaman 5: Dashboard Statistik Publik (UC-07) (Akses: Publik & Admin) | |
| * **Visualisasi Grafik:** Representasi visual interaktif menggunakan library grafik berbasis performa (seperti Chart.js / Recharts): | |
| * *Pie Chart:* Distribusi aduan per kategori instansi. | |
| * *Bar Chart:* Tren volume aduan bulanan. | |
| * *Line Chart:* Kecepatan rata-rata waktu penyelesaian kasus. | |
| * **Fitur Filter Kontrol:** Komponen seleksi tanggal (*Date Range Picker*) dan filter multi-opsi kategori untuk menyaring data grafik secara instan tanpa memuat ulang halaman (*Asynchronous Re-rendering*). | |
| --- | |
| ## 4. Arsitektur Alur Kerja Aplikasi (*Systemic Web Flow*) | |
| Seluruh navigasi antar halaman diatur melalui struktur routing yang ketat dengan pengamanan tingkat tinggi (*Route Guards*). Di bawah ini merupakan representasi urutan langkah alur navigasi dari awal hingga akhir proses: | |
| ``` | |
| [Masyarakat / Publik] | |
| β | |
| ββββΊ Akses Landing Page βββΊ Melihat Statistik Publik (UC-07) | |
| β | |
| ββββΊ Mengklik "Daftar Akun" βββΊ Mengisi Form Pendaftaran (UC-01) | |
| β β | |
| β (Data Valid) | |
| β βΌ | |
| ββββΊ Mengklik "Masuk" βββββββββββββββββββββ | |
| β β | |
| β (Login Sukses) | |
| β βΌ | |
| ββββΊ Masuk ke Ruang Kerja Masyarakat | |
| β | |
| ββββΊ Mengisi Formulir Pengaduan Baru (UC-02) βββΊ Simpan ke Database (Status: Menunggu) | |
| β | |
| ββββΊ Membuka Riwayat Pengaduan | |
| β | |
| ββββΊ Status "Menunggu"? | |
| ββββΊ Ya βββΊ Mengedit Laporan Aduan (UC-03) | |
| ββββΊ Tidak βββΊ Akses Edit Terkunci (Read-Only) | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| [Admin] | |
| β | |
| ββββΊ Otentikasi Admin Melalui Portal Khusus | |
| β β | |
| β (Login Sukses) | |
| β βΌ | |
| ββββΊ Masuk ke Admin Control Panel Dashboard | |
| β | |
| ββββΊ Buka Modul Antrean Verifikasi Laporan | |
| β β | |
| β ββββΊ Memverifikasi Kelayakan & Kelengkapan Laporan (UC-04) | |
| β β | |
| β (Laporan Valid) | |
| β βΌ | |
| β Meneruskan & Mengelola Distribusi ke Instansi (UC-05) (Status: Didistribusikan) | |
| β | |
| ββββΊ Membuka Log Pengaduan Aktif | |
| β β | |
| β ββββΊ Mengupdate Status Laporan & Beri Catatan Progres (UC-08) (Status: Selesai) | |
| β | |
| ββββΊ Membuka Analitik Internal βββΊ Melihat & Ekspor Data Statistik Komprehensif (UC-07) | |
| ``` | |
| ### Aturan Navigasi Operasional & Keamanan Routing: | |
| 1. **Guarded Routes (Middleware):** Halaman Ruang Kerja Masyarakat dan Admin Dashboard dilindungi oleh otentikasi berbasis *Token* (misal: JWT). Pengguna anonim yang mencoba mengakses tautan internal akan dilempar secara otomatis ke halaman Login. | |
| 2. **Role-Based Access Control (RBAC):** Akun bermasyarakat tidak memiliki akses fisik maupun logika program untuk membuka halaman dengan prefiks URL `/admin/*`. Pelanggaran akses akan memicu respon halaman kesalahan standar HTTP 403 (*Forbidden*). | |
| 3. **Form State Preservation:** Jika pengguna tidak sengaja menekan tombol kembali saat mengisi formulir `UC-02` atau `UC-03`, sistem akan menampilkan dialog konfirmasi *pop-up* pencegah kehilangan data guna memastikan pengalaman pengguna tetap optimal. |