D
Engineering

Tech Debt

Daftar technical debt Admin Dazo — prioritas pembenahan dan rencana perbaikan.

Ringkasan

Admin Dazo memiliki beberapa technical debt yang perlu ditangani secara bertahap. Daftar ini diurutkan berdasarkan prioritas dan dampak.

Critical Priority

#IssueDampakEffortRencana
1Hardcoded superadmin credentialsSecurity riskLowHapus auto-create, enforce env-based seeding
2PersonalAccessToken::updated() bugToken tidak tersimpan dengan benarLowGanti dengan updateOrCreate()
3Stray dd() di LiveChatControllerProduction crashLowHapus baris dd()
4Password overwrite bugUser tidak bisa update profile tanpa ganti passwordLowTambah kondisi if ($request->filled('password'))

High Priority

#IssueDampakEffortRencana
5Addon yearly expiry bugAddon “Year” tidak pernah expire dengan benarLowFix $d_satuan → $addon_d_satuan di OrderController.php:179
6Loose phone matching covendorData salah match antar userMediumNormalize phone sebelum compare
7No CI/CD pipelineDeployment manual, error-proneMediumBuat GitHub Actions workflow
8DB::transaction no-op di MongoDBFalse sense of safetyMediumGunakan MongoDB session atau remove
9N+1 query di PackageControllerSlow performance pageMediumEager load atau aggregate

Medium Priority

#IssueDampakEffortRencana
10Date stored as stringIndex tidak efektif, comparison brittleHighMigrate ke BSON DateTime
11Duration string parsingTypo break expiry mathMediumBuat enum atau value object
12Controller instantiation (new PaymentController())Tight coupling, hard to testMediumExtract ke service class
13Mixed MongoDB + MySQL di LiveChatComplexity, potential inconsistencyHighKonsolidasi ke satu database
14Dead model imports di LiveChatControllerConfusion, potential errorsLowCleanup unused imports
15Typo filename QuickLoginControlerInconsistent namingLowRename file
16Typo class name TicketingfeedbackControllerCase mismatch dengan routesLowFix class name atau routes

Low Priority

#IssueDampakEffortRencana
17Velzon demo pages masih shippedBundle size besarLowHapus unused pages
18No queue (sync)Slow request untuk operasi beratHighImplement Redis queue
19No index strategy MongoDBQuery slow di collection besarMediumAudit dan tambah index
20Env-switched URLs hardcodedTidak flexibleMediumPindah ke config/services.php

Rencana Pembenahan

Phase 1 — Quick Wins (1-2 hari)

  • Fix critical bugs (#1, #2, #3, #4)
  • Fix high priority bugs (#5, #6)
  • Cleanup dead code (#14, #15, #16)

Phase 2 — Infrastructure (1 minggu)

  • Setup CI/CD pipeline (#7)
  • Fix MongoDB transaction handling (#8)
  • Optimize N+1 queries (#9)

Phase 3 — Architecture (2-4 minggu)

  • Migrate dates ke BSON DateTime (#10)
  • Extract service classes (#11, #12)
  • Konsolidasi database LiveChat (#13)
  • Implement queue system (#18)

Phase 4 — Optimization (ongoing)

  • MongoDB index audit (#19)
  • Centralize service URLs (#20)
  • Cleanup Velzon demo pages (#17)