Product Requirements Document
Table of Contents
Desa-desa di Indonesia saat ini masih sangat bergantung pada proses administrasi manual — pencatatan data penduduk menggunakan buku register fisik, penerbitan surat keterangan yang membutuhkan warga untuk datang langsung ke kantor desa, serta laporan kependudukan yang dikompilasi secara manual oleh perangkat desa. Proses ini tidak hanya memakan waktu bagi warga maupun staf desa, tetapi juga rentan terhadap kehilangan data, duplikasi informasi, dan ketidaktransparanan dalam pelayanan publik.
Aplikasi Manajemen Desa hadir sebagai solusi digital terpadu yang menghubungkan tiga lapisan pengguna sekaligus: Kepala Desa dan Perangkat Desa yang membutuhkan dasbor administrasi berbasis Web Desktop, Warga dan Pendatang yang mengakses layanan melalui aplikasi Mobile, serta publik umum yang dapat melihat informasi desa tanpa perlu login. Tiga fitur inti yang menjadi prioritas di versi pertama adalah manajemen data penduduk secara digital, penerbitan surat keterangan secara digital tanpa harus hadir fisik, dan laporan serta ringkasan kependudukan yang dapat diakses secara real-time oleh Kepala Desa dan Perangkat.
Target pengguna utama aplikasi ini mencakup Kepala Desa sebagai pemegang keputusan tertinggi di tingkat desa, Perangkat Desa sebagai operator harian administrasi, serta Warga dan Pendatang sebagai penerima layanan. Alternatif yang saat ini digunakan — seperti pencatatan manual, Microsoft Excel, atau aplikasi PRODESKEL dari Kemendagri — tidak menyediakan pengalaman mobile yang memadai bagi warga, tidak mengintegrasikan penerbitan surat digital, dan tidak memberikan ringkasan data yang actionable bagi kepala desa. Aplikasi ini dirancang untuk mengisi celah tersebut dengan pendekatan yang berpusat pada kemudahan layanan publik tingkat desa.
Tabel fitur utama mencakup seluruh kapabilitas inti Aplikasi Manajemen Desa untuk tiga kelompok pengguna: Admin (Kepala Desa & Perangkat), Warga/Pendatang, dan Publik.
| Fitur | Deskripsi | MVP | Priority |
|---|---|---|---|
| Manajemen Data Penduduk | CRUD data warga & pendatang: NIK, nama, alamat, status keluarga, dan dokumen kependudukan | ✓ | P0 |
| Surat Keterangan Digital | Pengajuan, persetujuan, dan unduh surat keterangan (domisili, tidak mampu, usaha, dll.) secara online | ✓ | P0 |
| Dashboard & Laporan Desa | Ringkasan statistik penduduk, jumlah surat terbit, dan grafik demografis untuk Kepala Desa & Perangkat | ✓ | P0 |
| Autentikasi & Role Management | Login berbasis role (Kepala Desa, Perangkat, Warga, Pendatang) dengan hak akses berbeda per role | ✓ | P0 |
| Portal Publik Desa | Halaman informasi desa (berita, pengumuman, profil desa) yang dapat diakses tanpa login | ✓ | P0 |
| Alur Persetujuan Surat | Workflow multi-tahap: Warga ajukan → Perangkat verifikasi → Kepala Desa setujui → Surat diterbitkan | ✓ | P0 |
| Notifikasi Status Permohonan | Push notification & in-app notif ke warga saat status permohonan surat berubah (diproses/disetujui/ditolak) | ✓ | P1 |
| Manajemen Kartu Keluarga | Pengelompokan data warga per Kartu Keluarga (KK), tambah/hapus anggota keluarga | ✓ | P1 |
| Riwayat Surat Per Warga | Histori seluruh surat yang pernah diajukan dan diterbitkan untuk satu warga | ✓ | P1 |
| Ekspor Laporan | Ekspor data penduduk dan laporan surat ke format PDF dan Excel untuk kebutuhan arsip desa | ✗ | P1 |
| Manajemen Pendatang | Registrasi & pencatatan pendatang sementara/permanen dengan masa berlaku dan data asal daerah | ✗ | P1 |
| Template Surat Kustom | Admin dapat membuat dan mengedit template surat keterangan sesuai format resmi desa | ✗ | P2 |
| Peta Persebaran Penduduk | Visualisasi peta interaktif lokasi tempat tinggal warga per RT/RW | ✗ | P2 |
| Integrasi Dukcapil | Sinkronisasi data penduduk dengan sistem Dinas Kependudukan dan Pencatatan Sipil | ✗ | P2 |
| Pengumuman & Agenda Desa | Modul kalender kegiatan desa yang dapat diposting admin dan dilihat publik maupun warga | ✗ | P2 |
Terdapat tiga alur utama yang menjadi inti operasional Aplikasi Manajemen Desa: alur login dan autentikasi, alur pengajuan surat keterangan digital oleh warga, dan alur verifikasi serta penerbitan surat oleh perangkat desa.
Warga membuka aplikasi mobile, lalu memilih opsi "Masuk" dan memasukkan NIK beserta kata sandi yang telah terdaftar. Sistem memverifikasi kredensial ke database penduduk; jika NIK cocok dan akun aktif, warga diarahkan ke dashboard warga. Jika login gagal (NIK tidak ditemukan atau kata sandi salah), sistem menampilkan pesan error dan menawarkan opsi "Lupa Kata Sandi". Kepala Desa dan Perangkat Desa mengakses Web Desktop dengan email instansi dan kata sandi, setelah berhasil sistem membaca role yang ditetapkan dan mengarahkan ke panel admin dengan hak akses sesuai jabatan — Kepala Desa mendapatkan akses penuh termasuk laporan, sedangkan Perangkat hanya ke fitur operasional yang relevan (input data, proses surat).
Warga yang sudah login membuka menu "Surat Keterangan" di aplikasi mobile, lalu memilih jenis surat yang dibutuhkan (contoh: Surat Keterangan Domisili, Surat Keterangan Tidak Mampu, Surat Pengantar KTP). Sistem menampilkan formulir pengajuan yang sebagian datanya sudah terisi otomatis berdasarkan profil penduduk warga tersebut di database. Warga melengkapi kolom tambahan yang diperlukan, mengunggah dokumen pendukung jika diminta (foto KTP, KK), lalu menekan tombol "Ajukan". Sistem membuat nomor tiket pengajuan, mengubah status menjadi "Menunggu Verifikasi", dan mengirimkan notifikasi push ke warga bahwa pengajuan berhasil diterima. Warga dapat memantau status pengajuan secara real-time melalui menu "Riwayat Pengajuan".
Perangkat Desa menerima notifikasi masuk di Web Desktop bahwa ada pengajuan baru. Perangkat membuka daftar antrian pengajuan, memilih satu pengajuan, lalu memeriksa data pemohon dan dokumen yang dilampirkan — sistem secara otomatis menampilkan data kependudukan pemohon dari database untuk memudahkan validasi silang. Jika data valid dan lengkap, Perangkat menekan tombol "Setujui & Proses"; sistem membangkitkan dokumen surat dalam format PDF dengan nomor surat resmi, cap digital desa, dan QR Code verifikasi. Jika data tidak lengkap atau ada ketidaksesuaian, Perangkat dapat menolak pengajuan disertai catatan alasan yang akan dikirimkan sebagai notifikasi ke warga. Surat yang sudah diterbitkan langsung dapat diunduh oleh warga melalui aplikasi mobile dari menu "Riwayat Pengajuan", dan tersimpan di arsip digital desa yang dapat diakses oleh Kepala Desa melalui panel laporan.
Perangkat Desa membuka modul "Data Penduduk" di Web Desktop dan dapat melakukan tiga aksi utama: tambah data penduduk baru, ubah data existing, atau nonaktifkan data penduduk yang sudah meninggal/pindah domisili. Saat menambahkan penduduk baru, admin mengisi formulir lengkap mencakup NIK, nama, tanggal lahir, alamat, status keluarga, dan data KK. Sistem memvalidasi NIK agar tidak duplikat sebelum menyimpan. Perubahan data penduduk dicatat dalam log aktivitas yang dapat diaudit oleh Kepala Desa. Kepala Desa juga dapat mengakses menu "Laporan & Ringkasan" untuk melihat statistik penduduk (total penduduk, persebaran usia, jumlah KK, penduduk masuk/keluar) dalam bentuk grafik dan tabel yang dapat diekspor ke format PDF atau Excel.
Pengunjung tanpa akun dapat mengakses halaman publik desa melalui web atau mobile tanpa perlu login. Halaman publik menampilkan informasi profil desa, pengumuman resmi dari Kepala Desa, dan layanan informasi umum seperti persyaratan pembuatan surat. Jika pengunjung ingin mengajukan surat atau melihat status pengajuan, sistem mengarahkan mereka ke halaman login/pendaftaran. Pendatang yang belum terdaftar sebagai penduduk dapat mengisi formulir pendaftaran sementara untuk keperluan administrasi pendatang, yang kemudian diverifikasi manual oleh Perangkat Desa sebelum akun diaktifkan.
Sistem Manajemen Desa memiliki 7 entitas inti yang saling berelasi: Pengguna, Penduduk, Surat, TemplateSurat, Pengajuan, Laporan, dan Desa.
Tabel: PENDUDUK
| Column | Type | Constraint | Keterangan |
|---|---|---|---|
| id | uuid | PK, NOT NULL | Primary key unik per record |
| nik | varchar(16) | UNIQUE, NOT NULL | Nomor Induk Kependudukan 16 digit |
| nama_lengkap | varchar(255) | NOT NULL | Nama sesuai KTP |
| tempat_lahir | varchar(100) | NOT NULL | Kota/kabupaten lahir |
| tanggal_lahir | date | NOT NULL | Format YYYY-MM-DD |
| jenis_kelamin | enum | NOT NULL | Nilai: LAKI_LAKI, PEREMPUAN |
| alamat | text | NOT NULL | Alamat domisili lengkap |
| status_warga | enum | NOT NULL | Nilai: TETAP, PENDATANG, MERANTAU |
| desa_id | uuid | FK → DESA.id | Desa tempat terdaftar |
| pengguna_id | uuid | FK → PENGGUNA.id, NULLABLE | NULL jika belum punya akun mobile |
Tabel: PENGAJUAN
| Column | Type | Constraint | Keterangan |
|---|---|---|---|
| id | uuid | PK, NOT NULL | Primary key unik per pengajuan |
| penduduk_id | uuid | FK → PENDUDUK.id, NOT NULL | Pemohon surat |
| template_surat_id | uuid | FK → TEMPLATE_SURAT.id, NOT NULL | Jenis surat yang dimohon |
| status | enum | NOT NULL | Nilai: MENUNGGU, DIPROSES, SELESAI, DITOLAK |
| catatan_pemohon | text | NULLABLE | Keterangan tambahan dari warga |
| catatan_admin | text | NULLABLE | Alasan penolakan atau catatan proses |
| tanggal_ajuan | timestamp | NOT NULL, DEFAULT NOW() | Waktu pengajuan masuk |
| tanggal_selesai | timestamp | NULLABLE | Diisi saat status = SELESAI |
| diproses_oleh | uuid | FK → PENGGUNA.id, NULLABLE | Perangkat desa yang menangani |
Tabel: SURAT
| Column | Type | Constraint | Keterangan |
|---|---|---|---|
| id | uuid | PK, NOT NULL | Primary key unik per dokumen |
| pengajuan_id | uuid | FK → PENGAJUAN.id, UNIQUE, NOT NULL | Satu pengajuan hanya hasilkan satu surat |
| nomor_surat | varchar(100) | UNIQUE, NOT NULL | Format: 474/DS-[KODE]/[BULAN]/[TAHUN] |
| konten_final | text | NOT NULL | HTML/Markdown isi surat yang sudah dirender |
| qr_code_token | varchar(255) | UNIQUE, NOT NULL | Token verifikasi keaslian surat digital |
| tanggal_terbit | timestamp | NOT NULL | Tanggal resmi penerbitan surat |
| ditandatangani_oleh | uuid | FK → PENGGUNA.id, NOT NULL | Kepala Desa atau perangkat berwenang |
Tabel: LAPORAN
| Column | Type | Constraint | Keterangan |
|---|---|---|---|
| id | uuid | PK, NOT NULL | Primary key unik per laporan |
| desa_id | uuid | FK → DESA.id, NOT NULL | Laporan milik desa mana |
| judul | varchar(255) | NOT NULL | Contoh: "Laporan Kependudukan Q1 2025" |
| jenis_laporan | enum | NOT NULL | Nilai: KEPENDUDUKAN, SURAT_MENYURAT, DEMOGRAFIS |
| periode_awal | date | NOT NULL | Awal rentang waktu laporan |
| periode_akhir | date | NOT NULL | Akhir rentang waktu laporan |
| data_ringkasan | json | NOT NULL | Aggregat data (total penduduk, jumlah surat, dsb.) |
| dibuat_oleh | uuid | FK → PENGGUNA.id, NOT NULL | Admin/perangkat yang generate laporan |
| created_at | timestamp | NOT NULL, DEFAULT NOW() | Waktu laporan dibuat |
Tabel milestone per fase dengan estimasi timeline 16 minggu, dimulai dari minggu pertama setelah kickoff:
| Fase | Periode | Deliverable | Milestone |
|---|---|---|---|
| Foundation | Week 1–3 | Setup infrastruktur, desain database, UI/UX wireframe, sistem autentikasi role-based (Kepala Desa, Perangkat, Warga, Pendatang) | Auth & DB schema production-ready |
| Core Features | Week 4–8 | Manajemen Data Penduduk (CRUD), modul Surat Keterangan Digital (generate, approval workflow, download PDF), portal publik tanpa login | MVP fitur utama berjalan end-to-end |
| Reporting & Mobile | Week 9–12 | Dashboard laporan & ringkasan statistik desa, aplikasi mobile Warga (React Native), notifikasi status surat | Mobile app & laporan live di staging |
| Stabilisasi & Launch | Week 13–16 | QA & bug fixing, UAT bersama Kepala Desa dan Perangkat Desa, optimasi performa, deployment production | Go-live versi 1.0 |
Rincian deliverable per fase:
| Fase | Fitur / Modul | Actor Terlibat | Status Target |
|---|---|---|---|
| Foundation | Role management (Admin Web & Mobile), onboarding perangkat desa, skema database penduduk | Kepala Desa, Dev Team | Selesai Week 3 |
| Core Features | Input & edit data penduduk, pengajuan surat oleh warga, approval surat oleh perangkat, generate PDF berlogo desa | Perangkat Desa, Warga, Pendatang | Selesai Week 8 |
| Reporting & Mobile | Laporan jumlah penduduk, statistik surat terbit, grafik demografi, push notifikasi mobile | Kepala Desa, Warga | Selesai Week 12 |
| Stabilisasi & Launch | Load testing, perbaikan feedback UAT, panduan penggunaan (user manual), training perangkat desa | Seluruh user | Selesai Week 16 |
Definisi Done per Fase:
| Fase | Kriteria Selesai |
|---|---|
| Foundation | Semua role berhasil login, database migration berjalan tanpa error, wireframe disetujui Kepala Desa |
| Core Features | Warga dapat mengajukan surat → Perangkat approve → PDF ter-generate tanpa error di 3 browser berbeda |
| Reporting & Mobile | Dashboard menampilkan data real-time, mobile app lolos review internal, notifikasi terkirim dalam < 30 detik |
| Stabilisasi & Launch | Zero critical bug saat UAT, response time API < 2 detik under 100 concurrent user, training perangkat selesai |
Risiko dan Mitigasi per Fase:
| Fase | Risiko Utama | Probabilitas | Mitigasi |
|---|---|---|---|
| Foundation | Data penduduk eksisting tidak terstruktur / format beragam | Tinggi | Sediakan template import CSV standar di Week 1; validasi data sebelum migrasi |
| Core Features | Alur approval surat berubah sesuai kebutuhan desa | Sedang | Buat approval workflow yang configurable, bukan hardcoded |
| Reporting & Mobile | Akses internet di desa tidak stabil | Tinggi | Tambahkan mode offline-first pada mobile app dengan sinkronisasi saat koneksi tersedia |
| Stabilisasi & Launch | Perangkat desa tidak familiar dengan sistem digital | Sedang | Jadwalkan 2 sesi training + buat user manual bergambar berbahasa Indonesia |
Made with PRD Pro
✦Create your own PRD — free