Product Requirements Document
Table of Contents
Pengelolaan kost secara manual menjadi masalah nyata bagi para pemilik kost (indekos) di Indonesia. Mereka harus mendatangi kamar satu per satu untuk menagih sewa, mencatat pembayaran di buku atau spreadsheet, dan mengingat sendiri siapa yang sudah atau belum bayar. Ketika jumlah penghuni bertambah, proses ini semakin rawan kesalahan, mudah terlupakan, dan memakan waktu yang tidak sedikit setiap bulannya.
Aplikasi manajemen kost ini hadir sebagai solusi digital yang memungkinkan pemilik kost mencatat tunggakan, melacak riwayat transaksi per penghuni, menerima pembayaran secara online melalui berbagai metode, serta mendapatkan laporan keuangan otomatis tanpa harus menghitung manual. Sistem pengingat pembayaran otomatis memastikan penghuni mendapat notifikasi sebelum jatuh tempo, sehingga pemilik tidak perlu lagi menagih satu per satu.
Target utama aplikasi ini adalah pemilik kost skala kecil hingga menengah (5–50 kamar) yang saat ini masih mengandalkan metode konvensional seperti catatan buku, grup WhatsApp, atau transfer bank tanpa konfirmasi otomatis. Penghuni kost juga menjadi pengguna sekunder yang dapat melihat status tagihan dan melakukan pembayaran langsung melalui aplikasi.
| Aspek | Detail |
|---|---|
| Target user | Pemilik kost 5–50 kamar, penghuni kost sebagai pengguna sekunder |
| Platform | Web app PWA (Progressive Web App) — aksesibel di desktop, tablet, dan mobile |
| Problem utama | Penagihan sewa manual, pencatatan tunggakan yang tidak terstruktur, tidak ada laporan keuangan otomatis |
| Solusi | Digitalisasi tagihan, notifikasi pengingat otomatis, integrasi pembayaran online, laporan keuangan real-time |
| Kompetitor / alternatif saat ini | Buku catatan manual, spreadsheet Excel, grup WhatsApp, transfer bank konvensional |
Tabel Functional Requirements mencakup semua fitur inti yang diidentifikasi dari sesi onboarding:
| ID | Requirement | Priority | Notes |
|---|---|---|---|
| FR-01 | Sistem dapat mencatat tunggakan pembayaran sewa per penghuni kost | P0 | First value — harus bisa dilakukan tanpa fitur lain |
| FR-02 | Pemilik kost dapat melihat riwayat transaksi per penghuni (tanggal, jumlah, status) | P0 | Dasar laporan keuangan |
| FR-03 | Sistem menghasilkan laporan keuangan otomatis bulanan/tahunan | P0 | Rekap pemasukan, tunggakan, dan pembayaran lunas |
| FR-04 | Integrasi dengan minimal 1 metode pembayaran digital (transfer bank / e-wallet) | P1 | Alasan utama pindah dari cara manual |
| FR-05 | Sistem mengirim pengingat pembayaran otomatis ke penghuni via WhatsApp atau notifikasi push | P1 | Fitur retensi harian pemilik kost |
| FR-06 | Pemilik kost dapat menambah, mengedit, dan menghapus data penghuni | P0 | Prasyarat semua fitur lainnya |
| FR-07 | Penghuni dapat melihat tagihan aktif dan riwayat pembayaran mereka sendiri | P1 | Transparansi — mengurangi pertanyaan manual ke pemilik |
| FR-08 | Sistem mencatat tanggal jatuh tempo sewa per penghuni dan menandai status (lunas / belum / menunggak) | P0 | Inti dari pencatatan tunggakan FR-01 |
| FR-09 | Pemilik kost dapat mengonfirmasi pembayaran manual (cash) secara manual dari aplikasi | P1 | Tidak semua penghuni pakai digital payment di awal |
| FR-10 | Dashboard ringkasan menampilkan total pemasukan, jumlah penghuni aktif, dan jumlah tunggakan bulan ini | P1 | Entry point harian pemilik kost |
| FR-11 | Laporan keuangan dapat diekspor dalam format PDF atau Excel | P2 | Berguna untuk keperluan pajak atau rekap tahunan |
| FR-12 | Pemilik kost dapat mengatur jadwal dan template pesan pengingat pembayaran | P2 | Kustomisasi pengingat otomatis FR-05 |
Tabel Non-functional Requirements mendefinisikan standar teknis dan kualitas sistem:
| Aspek | Requirement | Target |
|---|---|---|
| Performance | Halaman dashboard dan riwayat transaksi harus termuat penuh | < 2 detik pada koneksi 4G |
| Performance | Pengiriman notifikasi pengingat pembayaran setelah trigger dijadwalkan | Delay maksimal 5 menit |
| Security | Data keuangan penghuni dan pemilik kost harus terenkripsi saat transit dan saat disimpan | TLS 1.2+ dan AES-256 at rest |
| Security | Akses fitur admin (kelola penghuni, konfirmasi bayar) hanya untuk akun pemilik kost terverifikasi | Role-based access control: Owner vs Tenant |
| Security | Autentikasi menggunakan OTP berbasis nomor telepon untuk menghindari kebocoran password | OTP via SMS/WhatsApp, expire 5 menit |
| Scalability | Sistem harus mampu menangani operasional multi-kost (1 akun pemilik dengan beberapa properti) | Minimal 10 properti, 200 penghuni per akun |
| Scalability | Riwayat transaksi harus tetap dapat diakses meski |
Tabel fitur utama mencakup semua kapabilitas yang dibutuhkan pemilik kost untuk menggantikan proses manual:
| Fitur | Deskripsi | MVP | Priority |
|---|---|---|---|
| Pencatatan Tunggakan | Input dan tracking status tagihan per penghuni per kamar, lengkap dengan tanggal jatuh tempo | ✓ | P0 |
| Riwayat Transaksi Penghuni | Histori lengkap pembayaran per penghuni: nominal, metode, tanggal, dan status lunas/belum | ✓ | P0 |
| Pengingat Pembayaran Otomatis | Notifikasi otomatis ke penghuni via WhatsApp/SMS/push notification H-3, H-1, dan hari H jatuh tempo | ✓ | P0 |
| Integrasi Metode Pembayaran | Penerimaan pembayaran via transfer bank, QRIS, dan dompet digital (GoPay, OVO, Dana) dengan rekonsiliasi otomatis | ✓ | P0 |
| Laporan Keuangan Otomatis | Rekap pemasukan bulanan, tunggakan aktif, dan tingkat kolektibilitas per periode dalam format ringkasan dan ekspor PDF/Excel | ✓ | P1 |
| Manajemen Data Penghuni | Profil penghuni: nama, nomor kamar, nominal sewa, tanggal masuk, kontak, dan dokumen KTP | ✓ | P1 |
| Dashboard Pemilik | Ringkasan real-time: total kamar terisi, total tagihan bulan ini, jumlah tunggakan, dan pemasukan terkumpul | ✓ | P1 |
| Multi-Properti | Kelola lebih dari satu lokasi kost dari satu akun yang sama | ✗ | P2 |
| Kontrak Digital | Upload dan tanda tangan kontrak sewa secara digital langsung di aplikasi | ✗ | P2 |
| Analitik Pendapatan | Grafik tren pendapatan bulanan, prediksi arus kas, dan perbandingan antar periode | ✗ | P2 |
Must have (P0):
Should have (P1):
Could have (P2):
Won't have (v1):
Terdapat 3 flow utama dalam aplikasi manajemen kost ini: flow pemilik kost mengelola tagihan, flow penghuni melakukan pembayaran, dan flow sistem mengirim pengingat otomatis.
Flow 1 — Pemilik Kost: Catat & Kelola Tunggakan
Pemilik kost membuka aplikasi, memilih kamar, lalu mencatat atau memverifikasi status pembayaran penghuni secara manual maupun otomatis dari sistem.
Flow 2 — Penghuni: Bayar Tagihan via Aplikasi
Penghuni menerima notifikasi tagihan, membuka aplikasi, memilih metode pembayaran yang tersedia, lalu menyelesaikan transaksi dan mendapat konfirmasi.
Flow 3 — Sistem: Pengingat Pembayaran Otomatis
Sistem secara terjadwal mengecek status tagihan seluruh penghuni, lalu mengirimkan notifikasi pengingat sesuai aturan yang dikonfigurasi pemilik kost.
Sistem dibangun dengan arsitektur modular monolith yang bisa diekstrak menjadi microservices di kemudian hari. API Gateway menjadi single entry point untuk semua request dari client. Reminder Scheduler berjalan sebagai background job yang dipicu lewat Redis Queue, memastikan notifikasi tagihan terkirim tepat waktu tanpa memblokir main thread.
| Layer | Technology | Alasan |
|---|---|---|
| Frontend | Next.js 14 (PWA) | SSR untuk performa, installable di mobile tanpa App Store, satu codebase untuk desktop & mobile pemilik kost |
| Backend | Node.js + Express / Fastify | Ekosistem luas, cocok untuk I/O-heavy (notifikasi, payment webhook), tim lebih mudah rekrut |
| Database | PostgreSQL 15 | Relasional cocok untuk data transaksi & tunggakan yang butuh konsistensi ACID |
| Cache & Queue | Redis 7 | Job queue untuk reminder scheduler, cache laporan keuangan agar tidak re-query tiap buka halaman |
| Auth | JWT + Refresh Token (via Auth Service) | Stateless, mudah di-scale, mendukung multi-device login pemilik kost |
| Payment Gateway | Midtrans | Mendukung transfer bank, QRIS, e-wallet; webhook-ready untuk update status otomatis |
| Push Notification | Firebase Cloud Messaging (FCM) | Gratis, reliable, support web push & Android sekaligus |
| WhatsApp Notif | WhatsApp Business API (Twilio/Fonnte) | Channel utama komunikasi penghuni kost di Indonesia untuk pengingat tagihan |
| Deploy | Railway / Fly.io + Supabase (managed PG) | Low ops overhead untuk tim kecil, auto-scale, database managed tidak perlu DBA dedicated |
| Storage | Cloudflare R2 | Simpan bukti transfer / struk pembayaran dari penghuni, biaya egress gratis |
| Kategori | Constraint | Dampak ke Development |
|---|---|---|
| Performance | Notifikasi pengingat pembayaran harus terkirim dalam < 30 detik setelah jadwal trigger | Butuh job scheduler (cron/queue) yang reliable, tidak boleh bergantung pada request HTTP biasa |
| Performance | Halaman riwayat transaksi penghuni harus load < 2 detik meski data sudah > 1.000 record | Wajib implementasi pagination server-side dan indexing pada kolom tenant_id, payment_date |
| Security | Data pembayaran dan tunggakan penghuni bersifat sensitif — harus enkripsi at-rest dan in-transit | Seluruh API endpoint wajib HTTPS, data finansial di database wajib encrypted field atau TDE |
| Security | Pemilik kost hanya boleh akses data kost miliknya sendiri, tidak boleh lintas kost | Row-level security wajib diimplementasi di layer database dan divalidasi ulang di backend |
| Security | Integrasi payment gateway (Midtrans/Xendit) harus validasi webhook signature | Setiap callback pembayaran wajib verifikasi HMAC signature sebelum update status transaksi |
| UX/UI | Target pengguna (pemilik kost) mayoritas non-teknis, usia 35–60 tahun | UI wajib minimalis: font ≥ 16px, tombol aksi utama ukuran besar, hindari jargon teknis di semua label |
| UX/UI | Aplikasi harus bisa digunakan di smartphone Android entry-level (RAM 2GB, layar 5") | Tidak boleh ada animasi berat, bundle size frontend harus < 500KB gzipped, lazy load untuk semua halaman |
| UX/UI | Laporan keuangan harus bisa diekspor dan dibagikan tanpa harus buka aplikasi lagi | Export PDF/Excel wajib bisa didownload langsung dan di-share via WhatsApp dari dalam aplikasi |
| Timeline | MVP harus selesai dalam 4 minggu dengan tim kecil (1 backend, 1 frontend, 1 PM) | Fitur P2 seperti multi-kost management dan analitik lanjutan tidak masuk sprint 1, fokus ke pencatatan tunggakan dan reminder |
| Budget/Infra | Infrastruktur awal harus hemat biaya — target < Rp 500.000/bulan untuk server | Gunakan single VPS (DigitalOcean/Vultr), PostgreSQL self-hosted, hindari managed services premium di fase awal |
| Budget/Infra | Biaya transaksi payment gateway tidak boleh dibebankan tersembunyi ke pengguna | Struktur fee MDR harus transparan dan dicatat per transaksi di tabel payment_fee agar bisa diaudit |
| Compliance | Penyimpanan data transaksi keuangan harus tersimpan minimal 5 tahun sesuai regulasi pembukuan | Soft-delete wajib diimplementasi, tidak ada hard-delete pada tabel transactions dan invoices |
Schema Entitas Utama
Tabel: TAGIHAN
| Column | Type | Constraint | Keterangan |
|---|---|---|---|
| id | uuid | PK | Identitas unik tagihan |
| penghuni_id | uuid | FK → PENGHUNI.id | Penghuni yang ditagih |
| kamar_id | uuid | FK → KAMAR.id | Kamar yang bersangkutan |
| jumlah_tagihan | decimal(12,2) | NOT NULL | Nominal tagihan sewa bulan berjalan |
| tanggal_tagihan | date | NOT NULL | Tanggal tagihan diterbitkan |
| tanggal_jatuh_tempo | date | NOT NULL | Batas akhir pembayaran |
| status_tagihan | enum | NOT NULL | BELUM_BAYAR, LUNAS, `JATUH_TEMPO |
| Fase | Periode | Deliverable | Milestone |
|---|---|---|---|
| Phase 1 — Foundation | Week 1–3 | Setup infrastruktur, skema database, autentikasi pemilik kost, manajemen data penghuni (CRUD) | Pemilik kost bisa login dan mengelola data penghuni |
| Phase 2 — Core Features | Week 4–6 | Modul pencatatan tunggakan, riwayat transaksi per penghuni, sistem pengingat pembayaran otomatis | Pemilik kost bisa mencatat dan melacak tunggakan tanpa proses manual |
| Phase 3 — Integrasi & Laporan | Week 7–9 | Integrasi payment gateway (Midtrans/Xendit), laporan keuangan bulanan otomatis, notifikasi push & WhatsApp | Penghuni bisa bayar digital; laporan keuangan terbentuk otomatis |
| Phase 4 — Polish & Launch | Week 10–12 | UI/UX final, QA end-to-end, UAT bersama 3–5 pemilik kost pilot, deployment production | Aplikasi live dan digunakan oleh cohort pengguna awal |
Catatan prioritas antar fase:
Made with PRD Pro
✦Create your own PRD — free