Furniture store management system
Toko Mebel
A management web app that keeps furniture production, inventory, invoices, and reporting in one secure, role-aware workspace.
- Role
- Frontend developer
- Year
- 2024 — 2025
- Stack
- ReactTypeScriptViteMaterial UIReduxReact Hook FormJoi
01 · The problem
Starting with the friction, not the feature list.
The store ran on spreadsheets and paper: production status, stock levels, and invoices lived in separate places, records conflicted, and there was no controlled access for staff who only needed part of the system.
02 · The approach
Turning observations into deliberate decisions.
- 01
Modeled the app around the store's real modules: production projects, inventory, invoicing, and reporting.
- 02
Implemented JWT authentication with five distinct roles, gating each module to the actions a role is allowed to perform.
- 03
Structured cross-module state with Redux and validated every form with React Hook Form and shared Joi schemas.
03 · Challenges
Constraints that made the solution stronger.
- Designing five permission levels without duplicating interfaces for every role.
- Keeping production, inventory, and invoice state consistent as one workflow changed the others.
- Writing validation rules that stay strict without frustrating daily data entry.
04 · Outcomes
What changed—and what I would improve next.
- Delivered the full frontend for production, inventory, invoice, and reporting flows on GitHub.
- Protected sensitive modules behind JWT auth with five clearly separated roles.
- Standardized form validation with React Hook Form and Joi to cut bad input before it reaches the API.