Langsung ke konten
AFM Studio
  • Halaman

    AFM Studio
  • Karya
  • Lab
  • Tentang
  • CV
  • Kontak
  • Proyek

    AksaraPerpustakaan pengetahuan Otorita IKN yang bisa dicari, dengan server memeriksa akses setiap pembaca di tiga tingkat
  • Daily TaqwaSistem presensi salat anti-manipulasi untuk ~2.000 pegawai OIKN di Masjid Negara IKN
  • Lantara v2Mesin perizinan Otorita IKN tempat administrator menambah jenis izin baru dari layar, tanpa developer
  • eKiosk IKNDua ruang kendali untuk Nusantara: konten kios dan pelacakan bus live dengan estimasi kedatangan yang menilai dirinya sendiri
  • E-Monev IKNPlatform pemantauan pembangunan Nusantara selama 23 tahun, melacak progres triwulan setiap unit terhadap 24 KPI
  • JDIH OIKNPortal dokumen hukum publik OIKN, dengan alur penerbitan terkendali dan ringkasan AI yang tidak pernah keluar dari server
  • Jejak PenanamanAplikasi absen acara penanaman pohon IKN yang membuktikan peserta hadir di lokasi lewat selfie ber-geofence
  • Dashboard SAKTIPipeline malam dan dashboard yang menggantikan unduhan anggaran manual di keenam satker OIKN
  • DoseRxKalkulator dosis untuk 127 obat yang membulatkan dosis ke tablet dan sirup yang dijual apotek Indonesia
  • CubiqPelatih speedcubing dengan timer setara kompetisi dan solver buatan sendiri untuk 8 puzzle utama
  • ScimotionPerpustakaan sains interaktif berisi 86 artikel, masing-masing dijelaskan bersama animasi yang bisa dikendalikan pembaca
  • WA Daily Scrum BotBot WhatsApp yang menagih laporan standup tim 14 orang dan menandai tugas yang macet berhari-hari

↑ ↓ untuk berpindah · Enter untuk membuka · Esc untuk menutup

E-Monev IKN

Platform pemantauan pembangunan Nusantara selama 23 tahun, melacak progres triwulan setiap unit terhadap 24 KPI

Tangkapan layar
peta jalan, 2022 sampai 2045, di satu tempat
23 tahun
KPI dipantau di lima tahap pembangunan
24
periode laporan, masing-masing PDF, Word, atau Excel
5
tingkat peran, dari super admin sampai tamu
6
Di halaman ini

Masalahnya

Indonesia sedang membangun ibu kota baru dari nol, dalam lima tahap dari 2022 sampai 2045. Puluhan unit kerja menjalankan kegiatan secara bersamaan, di bidang infrastruktur, tata kelola, lingkungan, dan sosial. Setiap kegiatan punya anggaran, target, dan capaian triwulannya sendiri.

Sebelum ada E-Monev, koordinator tidak punya satu tampilan untuk melihat progres lintas unit. Laporan triwulan disusun manual. Selisih antara anggaran dan realisasi sering baru ketahuan saat review sudah terlambat. Peta jalan 23 tahun itu tidak punya rumah digital. Tidak ada catatan resmi tentang siapa yang menyetujui atau menolak laporan dan apa alasannya. Unit juga masih bisa mengirim atau mengubah angka setelah periode pelaporan ditutup.

Yang saya bangun

Enam peran dalam satu urutan

Ada enam peran, dari super admin sampai tamu, dengan tingkat deputi dan eselon di antaranya. Saya menaruh semuanya dalam satu daftar berurutan. Setiap pemeriksaan hak akses cukup menanyakan satu hal: apakah peran orang ini minimal setinggi ini? Menambah aksi baru yang dilindungi cukup satu baris. Urutan yang sama menentukan akses di API sekaligus halaman yang tampil di browser.

Laporan triwulan bergerak lewat tahap tetap

Setiap kegiatan punya laporan progres triwulan berisi rencana, realisasi, dan file bukti. Laporan bergerak dari draf ke terkirim, lalu disetujui atau dikembalikan untuk revisi. Hanya perpindahan yang sah yang bisa terjadi, dan setiap perpindahan mencatat siapa, kapan, dan alasannya. Laporan hanya bisa diubah selama masih draf, jadi halamannya terkunci begitu laporan dikirim. Rencana operasional dulu punya tahap persetujuan sendiri. Saya menghapusnya, karena persetujuan yang sesungguhnya ada di laporan triwulan, dan dua antrean review berarti kerja dua kali.

Tenggat yang ditegakkan server

Administrator mengatur kapan jendela pelaporan dan perencanaan dibuka dan ditutup, dan bisa memperpanjang tenggat untuk satu unit. Server memeriksa jendela itu di setiap penulisan data. Perubahan yang terlambat ditolak, bahkan kalau seseorang memanggil sistemnya secara langsung. Banner di dashboard hanya memberi tahu apa yang sudah ditegakkan server.

Login yang menemukan unit Anda sendiri

Pegawai login lewat single sign-on IKN. Sistem itu mengirim nama jabatan sebagai teks biasa, seperti "Direktur Data dan Kecerdasan Buatan", dan tidak bisa diubah untuk mengirim ID unit. Saya menulis pencocok yang merapikan nama jabatan dan menilai kemiripan katanya untuk menemukan unit kerja yang tepat di setiap login. Tidak ada yang perlu memetakan pegawai ke unit secara manual.

Masalah dan impor data yang terstruktur

Awalnya, masalah dalam sebuah kegiatan ditulis di satu kolom catatan bebas. Saya memberinya catatan tersendiri. Satu kegiatan bisa punya banyak isu, masing-masing dengan status, unit yang membantu, dan riwayat tindak lanjut. Impor massal juga diperlakukan sama: admin mengunggah spreadsheet, melihat semua error tanpa ada data yang tersimpan, lalu menyimpan semuanya sekaligus.

Hasilnya

E-Monev mencakup seluruh kerangka pemantauan IKN: 24 KPI di lima tahap, delapan prinsip, dan enam aspek, sepanjang peta jalan 23 tahun. Dashboard empat tab memberi setiap peran tampilannya sendiri atas data yang sama, dengan ringkasan eksekutif, analitik, grafik keterkaitan KPI, dan peta semua kegiatan yang punya lokasi. Laporan tersedia bulanan, triwulanan, semesteran, tahunan, dan akhir tahap, dalam format PDF, Word, atau Excel. Backend-nya sudah di produksi, dan frontend-nya sudah dikemas untuk deploy dengan cara yang sama. Saya membangun kedua sisinya antara Mei dan Juli 2026, dan cakupannya tumbuh jauh melampaui spesifikasi awal.

Di balik layarDetail teknis untuk engineer
  • Peran super_admin, admin, deputi_pp, eselon_1, eselon_2, guest tersusun dalam list ROLE_HIERARCHY; User.has_min_role() membandingkan posisinya. Permission class seperti IsSuperAdmin dan CanApproveRO membungkus satu perbandingan itu.
  • TriwulanProgress membawa ReviewStatus (Draft, Submitted, Need Revision, Approved) dengan peta VALID_TRANSITIONS. transition_to() memvalidasi perpindahan dan menulis baris ReviewHistory. is_editable hanya bernilai true saat Draft.
  • ReportingWindow, PerencanaanWindow, dan RencanaOperasionalWindow, ditambah ReportingWindowExtension untuk pengecualian per unit. Pemeriksaan di reporting_window/services.py melempar ValidationError dari serializer dan view.
  • SSO Keycloak: backend menukar auth code antar-server dan menerbitkan pasangan SimpleJWT sendiri, jadi frontend tidak butuh library OIDC. apps/users/oidc.py menghapus diakritik, memetakan awalan jabatan ke awalan unit, dan menilai kemiripan kata untuk menemukan UnitOrganisasi dan UnitKerja.
  • Master data pindah dari primary key bigint ke UUID dengan migrasi maju di tempat untuk database yang sudah berjalan, lalu dibersihkan dari inkonsistensi riwayat migrasi.
  • Model Isu dan TindakLanjut dengan many-to-many unit_pembantu. BulkMixin menyediakan bulk_validate (uji coba) dan bulk_commit (atomik) dengan resolusi foreign key per kategori.
  • AuditMixin menambahkan created_by, updated_by, dan timestamp di banyak model; AuditModelViewSetMixin mengisinya otomatis.
  • MasterDataContext di frontend awalnya memakai localStorage, lalu pindah ke API dengan antarmuka yang sama, lalu dibuat lazy dengan useMasterCategories().
  • Peta Leaflet dimuat lewat next/dynamic dengan ssr: false. Grafik KPI memakai React Flow. Laporan memakai WeasyPrint, python-docx, dan openpyxl.
  • CI menerbitkan image backend ke GHCR setiap push ke main, dengan gerbang pip-audit.
  • 9 Django app, sekitar 29 model, 30 route frontend, 225 file sumber frontend, sekitar 9.760 baris Python dan 29.300 baris TypeScript, 82 commit backend dan 145 commit frontend sejak 20 Mei 2026.

Tangkapan layar

Dashboard
Master Data
Matriks Roadmap
Report
Rencana Operasional
Kegiatan Unit Kerja

Sedang merekrut, atau membangun hal serupa?

Saya terbuka untuk posisi full-time dan proyek freelance tertentu.