Kezia Beauty Salon
Kezia Admin is a multi-branch clinic management dashboard for Kezia Skincare (Indonesia). Branch operators and HQ admins use it to manage inventory, purchase orders, invoices, promotions, reporting, and customer medical …
This project is a legit production system — the UI is internal/confidential so screenshots aren't available.
Enterprise
1 technologies
Kezia Admin is a multi-branch clinic management dashboard for Kezia Skincare (Indonesia). Branch operators and HQ admins use it to manage inventory, purchase orders, invoices, promotions, reporting, and customer medical records across dozens of KFS (Klinik/Facial/Skincare) locations.
Problem
Fragmented operations across distributed clinic branches with no centralized inventory, purchasing, or reporting
Need for role-based access so HQ admins and branch staff see only relevant data
Approach
Modular monolith on Vue 2 + Vuexy template with Vuex state management (auth, UI, layout, menu stores)
Dynamic menu & RBAC — menus and permissions come from the API via CASL; the router guard fetches me + me/menu on first load and enforces action/resource permissions per route
Robust HTTP layer — Axios instance with auto token injection, request spinner, response interceptor with transparent 401 → refresh-token → retry cycle
Feature surface — 13 route modules spanning dashboard (ApexCharts), CRUD for products/treatments/raw materials/POS, Promo engine, Sales/Purchase Order reporting, and an Accurate accounting integration indicator
Dual push channels — Firebase Cloud Messaging (SW-based) + Pusher.js for real-time updates
Impact
Centralized multi-branch operations that previously relied on manual coordination
Fine-grained access control prevents data leakage between branches
Real-time stock and order visibility reduces over-purchasing
Stack
- Vue 2 · Vuex 3 · Vue Router 3 · Bootstrap 4 + BootstrapVue · Axios · CASL (ACL) · ApexCharts · FullCalendar · vee-validate · vue-i18n · Firebase Messaging · Pusher.js · Sass · ESLint (Airbnb) · Vue CLI 4