Skip to content
W
← Back to all projects

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
Toko Mebel dashboard showing inventory rows, monthly revenue, invoices, and a production run

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.

  1. 01

    Modeled the app around the store's real modules: production projects, inventory, invoicing, and reporting.

  2. 02

    Implemented JWT authentication with five distinct roles, gating each module to the actions a role is allowed to perform.

  3. 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.

Next case study

AFC Landing Page