Commit Graph

776 Commits

Author SHA1 Message Date
bf9c37ff98 fix(auth): hapus fallback SESSION_PASSWORD yang hardcoded, throw error saat startup jika tidak di-set
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 16:30:01 +08:00
8f2081cc77 Merge tasks/auth/fix-otp-csprng/20260608 into stg (fix OTP CSPRNG) 2026-06-08 16:15:42 +08:00
c5bbafa20a fix(auth): ganti Math.random() dengan crypto.randomInt untuk OTP
Math.random() bukan CSPRNG sehingga OTP dapat diprediksi. Diganti dengan
crypto.randomInt(1000, 10000) dari Node.js built-in crypto module.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 16:15:39 +08:00
b0a020871f chore: bump version to 0.1.69 for stg deploy 2026-05-30 15:05:13 +08:00
f35833078b feat(seeder): distribusi banjarId merata di grafik kepuasan, tambah 3 data baru
- Perbaiki duplikasi banjar_pudak_amara_001 (item 004 → banjar_anggrek_001)
- Tambah item 006-008 agar semua 8 banjar terwakili
  - cmk-kepuasan-006: Ni Nyoman Sari / Hipertensi → banjar_kamboja_001
  - cmk-kepuasan-007: I Made Darmawan / Diabetes → banjar_melur_001
  - cmk-kepuasan-008: Ni Kadek Ayu Lestari / Asma → banjar_kenanga_001

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 15:00:12 +08:00
04c8ce81c1 chore: bump version to 0.1.68 for stg deploy 2026-05-30 11:22:19 +08:00
2b1dd5fb71 Merge tasks/kesehatan/banjar-penderita-penyakit/20260530 into stg (seeder update) 2026-05-30 11:13:05 +08:00
4c45c679ce feat(seeder): tambah banjarId ke data dan seeder grafik kepuasan
- Update grafik-kepuasan.json: tambah banjarId ke setiap item
- Update seed_grafik_kepuasan.ts: upsert banjarId dari JSON

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 11:13:01 +08:00
0f5c905392 Merge tasks/kesehatan/banjar-penderita-penyakit/20260530 into stg 2026-05-30 11:09:02 +08:00
a67c192c83 feat(kesehatan): tambah relasi banjar ke penderita penyakit dan CRUD banjar admin
- Tambah field banjarId (optional) ke GrafikKepuasan + migration
- API CRUD banjar baru di /api/desa/banjar/*
- Update API grafik_kepuasan: create, find-many (filter by banjar), findUnique, updt - semua include banjar
- State: tambah banjarId ke form, banjarList proxy, filter by banjarId
- UI list: kolom Banjar di tabel desktop, kartu mobile, Select filter by banjar
- UI create/edit: Select banjar (opsional), load banjarList on mount
- UI detail: tampilkan field Banjar
- Admin banjar: halaman list, create, detail
- Sidebar: menu Banjar di domain Desa

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 11:08:58 +08:00
be3365c9e3 chore: bump version to 0.1.67 for stg deploy 2026-05-28 16:23:04 +08:00
d0b559f774 Merge tasks/kesehatan/posyandu-banjar-publik-fix-tips-keamanan/20260528 into stg 2026-05-28 15:51:36 +08:00
97d08734c5 feat(kesehatan): posyandu banjar relation, redesign halaman publik, fix tips keamanan image
- Tambah model Banjar + relasi ke Posyandu (migration + seeder)
- Update API posyandu (create/update/find) untuk support banjarId
- Tambah endpoint banjar di kesehatan API
- Redesign halaman publik posyandu dengan tabs: ringkasan, data posyandu, balita, ibu hamil
- Update halaman admin posyandu list/create/edit/detail untuk banjar
- Fix image ketukar pada seed tips keamanan
- Hapus seeder core yang sudah tidak dipakai

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:51:32 +08:00
9de32e5f12 chore: bump version to 0.1.66 for stg deploy 2026-05-21 16:34:56 +08:00
3a837e1fdc Merge tasks/event-budaya/feat-seeder-pagination-fix-duplicate/20260521 into stg 2026-05-21 16:28:18 +08:00
e9e7c17ee3 feat(desa): Kalender Event Budaya — fitur admin/public, seeder, pagination, fix duplicate options
- Tambah fitur Kalender Event Budaya di admin CMS (list, detail, edit, hapus)
- Tambah state Valtio (create, findMany, findUnique, edit, delete, findUpcoming)
- Tambah endpoint API /find-upcoming untuk event mendatang
- Tambah halaman public /darmasaba/desa/event-budaya dengan pagination 5 data/halaman
- Switch public page dari findUpcoming ke findMany agar pagination berjalan
- Tambah menu "Kalender Event Budaya" di navbar (id: 2.9)
- Perluas seeder event budaya: 8 → 34 events mencakup 2025-2026
- Fix: deduplikasi kategoriOptions di kegiatan-desa public page (Mantine Select error)
- Hapus STRUKTUR.md yang sudah tidak relevan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 16:28:13 +08:00
0a3dc1dc43 chore: bump version to 0.1.65 for stg deploy 2026-05-19 11:28:58 +08:00
7200caa125 Disable Dark Mode 2026-05-19 11:23:49 +08:00
4ad86b4cad chore: bump version to 0.1.64 for stg deploy 2026-05-19 10:23:07 +08:00
45cd1ca6f8 Fix Seeder APBDes V3 2026-05-19 10:19:35 +08:00
ce3ac75529 chore: bump version to 0.1.63 for stg deploy 2026-05-18 17:09:36 +08:00
d716a59ca5 Tambah Seeder V2 2026-05-18 16:57:13 +08:00
13b08aa057 chore: bump version to 0.1.61 for stg deploy 2026-05-18 15:34:48 +08:00
3e5cf9e2fb Ubah Seeder 2026-05-18 15:30:08 +08:00
71562961e8 chore: bump version to 0.1.60 for stg deploy 2026-05-07 15:37:12 +08:00
f52981c9b0 merge: feat(keamanan) tambah halaman publik CCTV dengan peta interaktif 2026-05-07 15:33:38 +08:00
20d1b9aa4b feat(keamanan): tambah halaman publik CCTV dengan peta interaktif
- Buat halaman publik /darmasaba/keamanan/cctv dengan grid card + search + pagination
- Tambah CctvMapSection (Leaflet, SSR=false) — marker hijau=Online, merah=Offline
- Popup marker menampilkan kode, nama, lokasi, dan status CCTV
- Tambah submenu CCTV (id 4.7) di navbar menu Keamanan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 15:33:35 +08:00
5e1b913e04 chore: bump version to 0.1.59 for stg deploy 2026-05-07 12:41:14 +08:00
aef07fab8e merge: fix(pendidikan) perbaiki jumlahPengajar & jumlahSiswa per jenjang di stats 2026-05-07 12:34:30 +08:00
27a42f7ff0 fix(pendidikan): perbaiki jumlahPengajar & jumlahSiswa per jenjang di stats
- Fix sintaks _count.select: gabungkan siswa & pengajar dalam satu object select
- Tambah jumlahPengajar per jenjang via reduce _count.pengajar
- Update type PerJenjang di stats.ts & ringkasan-pendidikan.ts
- Tambah tasks ke tasks-sample.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 12:34:20 +08:00
9e213ade8e merge: feat(beasiswa) dynamic stats penerima & dana tersalurkan + formatDana 2026-05-07 11:35:12 +08:00
ea70f6f6e9 feat(beasiswa): dynamic stats penerima & dana tersalurkan dari API + formatDana helper
- Ganti static dataBeasiswa dengan data live dari ringkasanBeasiswaState.findStats
- Tambah formatDana() untuk konversi angka ke Rb/Jt/M/T
- Tambah tasks ke tasks-sample.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 11:34:59 +08:00
da0a98d989 tasks/fix-findUnique-beasiswa-config 2026-05-06 17:01:01 +08:00
7bdf1357ad merge: feat(keamanan) tambah modul CCTV — schema, API, admin UI, seeder 2026-05-06 16:40:35 +08:00
936dd14ca9 feat(keamanan): tambah modul CCTV — schema, API, admin UI, seeder
- Tambah model CctvKeamanan + enum StatusCctv ke prisma schema
- Tambah status Baru ke enum StatusLaporan
- Migration: add_cctv_keamanan_model
- API CRUD + stats endpoint di /api/keamanan/cctv/...
- Admin state (valtio proxy) dengan create/findMany/edit/delete/stats
- Admin pages: list, create, detail (peta Leaflet), edit (peta picker)
- Seeder 8 data CCTV lokasi Darmasaba
- Tambah submenu CCTV di sidebar nav keamanan
- Bump version 0.1.57 → 0.1.58

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 16:40:31 +08:00
60841039dd chore: bump version to 0.1.57 for stg deploy 2026-05-06 12:08:19 +08:00
16b9b74a73 merge: feat(beasiswa) tambah UI konfigurasi beasiswa di admin 2026-05-06 11:52:02 +08:00
c0b08f4f69 feat(beasiswa): tambah UI konfigurasi beasiswa di admin pendidikan
- Tambah tab "Konfigurasi Beasiswa" di layoutTabs beasiswa-desa
- Buat halaman beasiswa-config/page.tsx dengan stats card (penerima,
  dana, tahun ajaran) + form edit tahunAjaran & danaTersalurkan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:51:57 +08:00
7b14923620 merge: fix(beasiswa) BigInt serialization error pada ringkasan stats 2026-05-06 11:17:52 +08:00
3cc09c83d8 fix(beasiswa): konversi danaTersalurkan BigInt ke string sebelum JSON serialize
Elysia tidak bisa serialize BigInt ke JSON — ubah return type danaTersalurkan
dari bigint ke string dengan .toString() di beasiswaRingkasanStats.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:17:48 +08:00
5658063f68 merge: feat(pendidikan) tambah state ringkasan & expand seeder beasiswa 2026-05-06 11:03:20 +08:00
d7e1192ab0 feat(pendidikan): tambah state ringkasan pendidikan & beasiswa + expand seeder beasiswa 45 entry
- Tambah ringkasan-pendidikan.ts: state valtio fetch GET /api/pendidikan/ringkasan/stats
- Tambah ringkasan-beasiswa.ts: state valtio fetch ringkasan stats + beasiswaConfig find/update
- Expand beasiswa-pendaftar.json dari 3 → 45 entry (nama Bali, NIK unik, enum valid)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:03:11 +08:00
8857853baf ci: tambah stack_name input opsional di publish.yml 2026-05-05 16:34:49 +08:00
ce26bc7cc8 chore: bump version to 0.1.56 for stg deploy 2026-05-05 16:25:25 +08:00
b479991c27 merge: refactor(ui) posyandu balita & ibu-hamil penghargaan pattern 2026-05-05 16:12:51 +08:00
e71c938b2f refactor(ui): sesuaikan UI balita & ibu-hamil dengan pola penghargaan
- Gunakan HeaderSearch + dua-komponen pattern (outer + inner list)
- Ganti Loader → Skeleton h={600}, ActionIcon → Button size="xs" variant="light"
- Tambah Paper wrapper, layout="fixed" table, desktop/mobile responsive split
- Search debounce 1000ms via useDebouncedValue

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 16:12:46 +08:00
ff25ead2df feat(sosial-dashboard): tambah API ringkasan pendidikan & beasiswa + CRUD event budaya - bump 0.1.55
- API GET /api/pendidikan/ringkasan/stats: siswa per jenjang, jumlah lembaga & pengajar
- API GET /api/pendidikan/beasiswa/ringkasan/stats: jumlah penerima, dana, tahun ajaran
- Schema + migration: model EventBudaya (nama, tanggal, lokasi, deskripsi)
- API CRUD /api/desa/eventbudaya: create, find-many, findUnique, updt, del
- State admin: eventBudaya.ts (valtio proxy, create/findMany/edit/delete)
- Admin CMS: /admin/desa/event-budaya (list, create, edit)
- Navbar: tambah entry Desa_9 Event Budaya di semua role
- Seeder: 8 event budaya Bali untuk Desa Darmasaba

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 15:25:34 +08:00
2497298703 chore: bump version to 0.1.54 for stg deploy 2026-05-05 14:14:19 +08:00
ba632f9d39 merge: fix(kesehatan) konsolidasi posyandu tabs - bump 0.1.53 2026-05-05 12:26:23 +08:00
f1ee53a7b9 fix(kesehatan): konsolidasi balita, ibu-hamil, ringkasan-kesehatan ke dalam posyandu tabs + fix semua routing path - bump 0.1.53
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 12:26:18 +08:00