Files
AbelBirdNest-Stock/docs/codex-handoff-2026-05-19.md

8.6 KiB

Codex Handoff - 2026-05-19

Dokumen ini menyimpan konteks kerja terbaru agar pengerjaan bisa langsung dilanjutkan tanpa menggali ulang repo.

Status Umum

  • App aktif dikembangkan di Next.js + Prisma + PostgreSQL.
  • Fitur operasional inti sudah cukup lengkap: pembelian, penerimaan, lot, aktivitas stok, penjualan, analisis pembelian, dan realisasi pembelian.
  • Scope mobile API untuk fase operasional utama juga sudah disiapkan.
  • Repo sudah dipush ke: https://git.iptek.co/wirabasalamah/AbelBirdNest-Stock.git
  • Branch aktif: main

Commit Penting Terakhir

  • 14bb9bf Initial import of AbelBirdNest Stock
  • 9141f99 Fix grade seed path for production deploy
  • 1274f2b Harden login and refresh production deploy guide
  • 8e8912e Allow negative purchase moisture percentages

Perubahan Besar yang Sudah Selesai

1. Purchase Analysis

  • Snapshot analisis pembelian sudah dipersist agar saat edit nilainya kembali sama persis.
  • Field seperti:
    • modal_barang
    • modal_beli
    • modal_masuk
    • modal_jual
    • total_modal_beli
    • total_modal_mal
    • average_price
    • kadar akhir sudah tersimpan dan bisa dipakai ulang.
  • Banyak rumus dashboard/analisis sudah disesuaikan:
    • kadar akhir
    • laba total / kg
    • laba/rugi agen
    • basis berat gram vs kg

2. Purchase Realization

  • Modul realization sudah didesain dan diimplementasikan bertahap.
  • Prisma model baru sudah ada:
    • LotPurchaseAllocation
    • PurchaseRealizationEntry
    • PurchaseRealizationSummary
  • Event yang sudah tersambung ke realization:
    • purchase submit
    • office buyout
    • washing complete
    • lot transformation / regrade / mix
    • regular sale close
    • consignment close
  • Endpoint list/detail dan halaman UI Purchase Realization sudah ada.
  • Filter/search dan drill-down dasar ke dokumen asal juga sudah ditambahkan.

3. Mobile API

  • Namespace /api/v1/mobile/** sudah disiapkan untuk role:
    • WAREHOUSE
    • QC
    • SALES
    • PURCHASING
    • OWNER
  • Endpoint mobile yang sudah ada mencakup:
    • bootstrap
    • dashboard
    • lots
    • receipts
    • stock adjustments
    • washing
    • lot transformations
    • regular sales
    • JIT sales
    • consignments
    • purchases
    • fund requests
    • purchase analyses
    • purchase realizations
  • Dokumen pendukung:

4. Bilingual UI dan Terminologi

  • Banyak area UI sudah dibersihkan dari campuran istilah Indonesia/Inggris.
  • Sidebar, mobile nav, halaman transaksi utama, master data, dan modul analitis sudah jauh lebih konsisten.
  • Banyak label dropdown dan placeholder sudah dibuat locale-aware.
  • Istilah bisnis Indonesia sudah dirapikan, misalnya:
    • AgentAgen
    • CourierJasa Pengiriman
    • WarehouseGudang
    • Warehouse LocationLokasi Gudang
    • Contact PersonKontak PIC

5. Dashboard

  • Dashboard atas sudah diubah:
    • Nilai Inventory menjadi basis Nilai Pembelian Bulan Ini
    • Receipt Bulan Ini menjadi Pembelian Bulan Ini
    • grafik menjadi Tren Pembelian vs Penjualan
    • kartu kanan menjadi Tingkat Serap Penjualan
  • Widget lot kritis diperjelas menjadi Lot Perlu Perhatian dengan alasan:
    • Stok Rendah
    • Usia Tinggi
    • Ditahan

6. Users

  • User sekarang sudah bisa diedit dari UI.
  • Jika email diubah:
    • email_verified_at di-reset
    • token verifikasi lama dibuang
    • email verifikasi dikirim ulang

7. Regular Purchase Moisture Validation

  • Validasi pembelian reguler sekarang mengizinkan:
    • kadar beli
    • kadar masuk
    • kadar akhir bernilai negatif sampai -100.
  • Alasan bisnis: nilai minus dipakai untuk kasus penyusutan / penurunan berat pada alur pembelian dan analisis.
  • Patch ini ada di commit:
    • 8e8912e Allow negative purchase moisture percentages
  • File yang berubah:
  • Tidak perlu migration database untuk patch ini.
  • Update server cukup:
    • git pull origin main
    • npm run build
    • restart service abelbirdnest-web

Hardening Production yang Sudah Dilakukan

Kondisi Deploy Server yang Perlu Diingat

  • Domain target production:
    • abelbirdnest.id
  • App dijalankan di:
    • 127.0.0.1:3007
  • Reverse proxy:
    • nginx
  • Struktur repo aktual di server diasumsikan:
    • /var/www/abelbirdnest-web/AbelBirdNest-Stock
  • systemd service file repo sudah diarahkan ke struktur subfolder ini.
  • Nginx sekarang disiapkan 2 tahap:
    1. HTTP-only dulu dengan abelbirdnest.id.http.conf
    2. setelah sertifikat ada, ganti ke abelbirdnest.id.conf

Catatan Produksi Penting yang Masih Relevan

  • roles tidak dibuat otomatis jika AUTH_BOOTSTRAP=false. Jadi sebelum membuat user pertama di production, tabel roles harus diisi dulu secara manual.
  • User pertama production sebaiknya dibuat langsung di PostgreSQL sebagai SYSTEM_ADMIN.
  • Seed:
    • banks dan currencies bisa langsung
    • grades butuh file Grade.xls
  • Script seed:grades sudah tidak lagi hardcoded ke path Mac lokal. Default path sekarang:
    • scripts/data/Grade.xls
  • Halaman login sudah dibersihkan:
    • tidak ada lagi autofill email/password default
    • panel daftar akun dev dihapus
  • Footer copyright sudah dipasang:
    • © 2026 AbelBirdnest
  • Copyright sudah muncul di:
    • halaman login
    • seluruh halaman app utama via AppShell

Dokumentasi User yang Sudah Dibuat

Sudah ada dokumen manual Word di folder docs/:

Dan asset screenshot pendukung:

Catatan:

  • file manual dan asset screenshot saat ini masih untracked di git
  • belum dipush ke remote

Status Git Saat Handoff Ini Dibuat

Untracked:

  • docs/manual-assets/
  • docs/manual-dashboard-abelbirdnest.docx
  • docs/manual-operasional-abelbirdnest-lengkap.docx
  • docs/manual-operasional-abelbirdnest-formal-screenshot.docx

Hal yang Masih Belum Ideal

  • Belum ada rate limiting auth/API sensitif.
  • SMTP_PASSWORD masih bisa tersimpan di DB settings.
  • npm run lint belum dijadikan gate CI non-interaktif yang rapi.
  • Belum ada test suite otomatis yang matang.
  • Sebagian validasi/error backend mungkin masih belum sepenuhnya locale-aware walaupun UI utama sudah jauh lebih bersih.

Langkah Lanjutan Paling Masuk Akal

  1. Putuskan apakah dokumen manual Word + screenshot perlu masuk repo dan dipush.
  2. Jika iya, git add file manual dan asset screenshot lalu commit terpisah.
  3. Tambahkan script/helper resmi untuk membuat roles dan user production pertama agar tidak lagi manual SQL.
  4. Lanjut hardening production:
    • rate limit
    • cleanup SMTP secret strategy
    • CI/lint/test
  5. Jika mobile app mulai dikerjakan, pakai:
    • docs/mobile-api-blueprint.md
    • Postman collection mobile

Catatan Penutup

  • File handoff lama docs/codex-handoff-2026-05-10.md sudah tidak relevan lagi karena banyak perubahan besar setelah tanggal itu.
  • Handoff terbaru ini menjadi sumber konteks utama sampai ada update berikutnya.