6.2 KiB
6.2 KiB
Admin Payroll Reward System — Brownfield Epic: UI Harmonization & Mock Data Seeding
Executive Summary
Kita akan menyelaraskan (harmonize) UI modul Admin Payroll Reward System di lingkungan brownfield, agar konsisten dengan Sidebar/TopBar dan DashboardLayout yang sudah ada. Selain itu, kita akan menyediakan mock data representatif (empty/normal/high-activity) untuk memverifikasi UX tanpa bergantung penuh pada backend. Targetnya adalah meningkatkan keterbacaan, konsistensi visual, dan mempercepat siklus QA dengan risiko regresi minimal. Prioritas: tinggi. Horizon: 2 minggu.
Goals
- Menyatukan gaya visual (warna, tipografi, spacing) komponen payroll-reward agar selaras dengan Sidebar/TopBar dan DashboardLayout.
- Meningkatkan aksesibilitas dan keterbacaan (kontras warna sesuai standar WCAG).
- Menyediakan mock data untuk state umum (empty, normal, high-activity) agar QA bisa menguji end-to-end tanpa backend.
- Menambahkan feature flags untuk rollout aman dan mitigasi regresi.
Scope
Dalam cakupan:
- Harmonisasi warna dan tema komponen di
src/features/payroll-reward-system(kartu, badge/status, angka/metrik). - Mengganti background gradient pada kartu reward menjadi warna solid selaras tone Sidebar (brand gelap/primary-900).
- Penyesuaian warna teks: angka/metrik berkontras tinggi; label/deskripsi lebih soft tapi tetap terbaca.
- Pembungkusan route
/admin/payrolldengansrc/layouts/DashboardLayout.tsx, memastikan Sidebar dan TopBar tampil konsisten. - Penyediaan mock data untuk user aktif (mapping
demo-user-123→user.id) dan skenario variasi (empty/low/high). - Penambahan feature flags di
src/config/featureFlags.ts(mis.enablePayrollUIHarmonization,useDemoRewardData).
Di luar cakupan:
- Perubahan/penyempurnaan login page (ditangani epic/PRD terpisah).
- Integrasi penuh ke backend payroll/komputasi reward.
- Redesign navigasi global di luar kebutuhan harmonisasi.
User Stories
- Sebagai Admin, saya ingin dashboard reward payroll tampil dengan gaya visual konsisten (warna, spacing, tipografi) agar mudah di-scan dan dipahami.
- Sebagai QA, saya ingin mengaktifkan mock data dan menguji berbagai state (empty/normal/high-activity) tanpa bergantung backend.
- Sebagai Developer, saya ingin feature flags untuk menyalakan/mematikan harmonisasi UI dengan aman saat rollout.
- Sebagai Desainer, saya ingin kontras warna dan tipografi mengikuti standar aksesibilitas sehingga teks dan angka tetap terbaca pada berbagai perangkat.
Acceptance Criteria
- Konsistensi UI:
- Semua kartu reward menggunakan background solid (bukan gradient) selaras tone Sidebar.
- Teks metrik (angka) memiliki kontras minimal 4.5:1 terhadap background; label/deskripsi readable (≥3:1).
- Spacing/padding antar kartu konsisten; tidak ada overlap/tumpang tindih.
- Integrasi layout:
- Route
/admin/payrolldibungkusDashboardLayout; Sidebar/TopBar tampil dan tidak mengganggu konten utama.
- Route
- Mock data:
- Flag
useDemoRewardDataON menampilkan data contoh untukuser.idsaat login (map kedemo-user-123). - Tersedia 3 state mock:
empty(0 reward),normal(nilai sedang),high-activity(nilai tinggi, beberapa badges).
- Flag
- Feature flags:
enablePayrollUIHarmonizationdapat ON/OFF tanpa error; saat OFF, UI kembali ke gaya lama secara aman.- Tersedia dokumentasi cara toggle dan fallback perilaku saat OFF.
- QA checklist:
- Visual regression minimal (halaman lain tidak berubah signifikan).
- Responsif di mobile/tablet/desktop tetap baik.
Milestones
- Audit & Design Tokens (Minggu 1, Hari 1–2)
- Audit komponen di
src/features/payroll-reward-systemdan dependensi disrc/components/dashboard. - Tentukan palet solid selaras Sidebar (brand gelap/primary-900) dan aturan tipografi (heading, label, angka).
- Audit komponen di
- Implementasi UI Harmonization (Minggu 1, Hari 3–4)
- Ganti gradient → solid tone pada kartu/badge.
- Atur warna teks (angka kontras tinggi; label lebih soft).
- Sesuaikan spacing/padding antar kartu sesuai grid sistem.
- Integrasi Layout & Flags (Minggu 1, Hari 5)
- Bungkus
/admin/payrolldenganDashboardLayout. - Tambah feature flags di
src/config/featureFlags.ts(enablePayrollUIHarmonization,useDemoRewardData).
- Bungkus
- Mock Data Seeding (Minggu 2, Hari 1–2)
- Buat provider/mock service untuk 3 state (empty/normal/high).
- Mapping
demo-user-123→user.iddariAuthContext.
- QA & Hardening (Minggu 2, Hari 3–5)
- Uji responsif, aksesibilitas, dan regression di halaman terkait.
- Dokumentasi toggle flags dan panduan verifikasi state untuk QA.
Dependencies
src/layouts/DashboardLayout.tsx,Sidebar.tsx,TopBar.tsxsrc/features/payroll-reward-system(komponen kartu/badge/metrik)tailwind.config.js(warna/tema),src/styles/globals.csssrc/config/featureFlags.ts(penambahan flags)src/contexts/AuthContext.tsx(aksesuser.iduntuk mapping mock data)
Risks & Mitigations
- Regresi visual pada halaman lain akibat perubahan token/global style.
- Mitigasi: Batasi perubahan pada payroll-reward dan komponen terkait; gunakan flags; lakukan QA regression checklist.
- Kontras warna kurang sesuai di beberapa display.
- Mitigasi: Ikuti standar WCAG; uji di perangkat/brightness berbeda; sediakan varian palet jika perlu.
- Mock data mengganggu data real saat staging.
- Mitigasi: Default flags OFF di staging/production; dokumentasi mode demo jelas; gating via env.
- Waktu implementasi melampaui target karena refactor komponen lama.
- Mitigasi: Prioritaskan surface paling terlihat (dashboard reward); minor legacy dikerjakan iteratif.
Next Actions
- Konfirmasi fokus epic dan horizon: “UI harmonization + mock data seeding”, 2 minggu (boleh koreksi).
- Setujui referensi konteks: gunakan
admin-brownfield-architecture.md(default: ya). - Minta pembuatan story breakdown:
- Story A: Harmonisasi warna/typography + spacing kartu reward.
- Story B: Pembungkusan
/admin/payrolldenganDashboardLayout. - Story C: Implement flags
enablePayrollUIHarmonization&useDemoRewardData. - Story D: Mock data provider (empty/normal/high) + mapping
demo-user-123→user.id. - Story E: QA suite, dokumentasi toggle, panduan verifikasi.
- Setelah disetujui, keluarkan backlog terurut + estimasi + rencana rilis.