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
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:
SearchGroupyang terdiri dariInputTextdanButton). - 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:
- Container Components (Smart): Mengatur penarikan data (data fetching), pengelolaan state manajemen, dan logika fungsional.
- 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
BadgeStatuswarna (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:
- 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.
- 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). - Form State Preservation: Jika pengguna tidak sengaja menekan tombol kembali saat mengisi formulir
UC-02atauUC-03, sistem akan menampilkan dialog konfirmasi pop-up pencegah kehilangan data guna memastikan pengalaman pengguna tetap optimal.