hfz.ml● PERSONAL ARCHIVE
status: brewing ×5

Bahagian 2: Admin Panel

PASS

[2026-10-15 20:54:18] · slug: bahagian-2-admin-panel

assert tech_stack ==
PHPAlpine.js

Admin panel penuh — auth selamat, CRUD entries (Log/Lab/Blog), pengurusan Feed/Promo/Short Links, Settings v2, integrasi AI, dan dashboard Traffic analytics.

Admin panel dibina bertahap — bermula dari foundation asas (login + CRUD) sampai jadi sistem pengurusan penuh:

Auth & keselamatan: login "Access Badge" (CSRF, rate limit, remember-me 30 hari), redesign dari tema dark ke light theme konsisten dengan public site, lebar panel admin dinaikkan untuk ruang lebih selesa.

Entry management: satu form pintar (entry-form.php) handle tiga jenis entry — Log, Lab, dan Blog — ikut query param, lengkap dengan editor Tiptap, tech stack tag, dan butang "Jana dengan AI" (Gemini) untuk bantu tulis description/content. Delete guna custom modal (bukan native confirm()). Blog turut sokong upload gambar (gallery, max 4 imej per entry).

Modul lain yang ditambah: Feed (composer post + manage dari admin, FAB quick-post di public page), Promo (urus poster iklan + tracking klik), Short Links (urus redirect pendek + stats), Settings v2 — reka bentuk "Page Cards" (toggle visibility & intro per public page dalam satu grid, bukan scroll panjang macam versi lama), dan Traffic — dashboard analytics sendiri (page views, daily breakdown, growth %, peak hour, new-vs-returning visitor) tanpa dependency Google Analytics.

Bug yang kena fix sepanjang jalan: quote-clash antara json_encode() output dan HTML attribute wrapper (solution guna data-* attribute atau single-quote wrapper), mojibake karakter (em dash/emoji rosak) dalam Settings → AI.

VISITOR RECORD 39 VERIFIED
cd ../log