POS Repair Shop
A multi-branch point-of-sale that runs a repair business end-to-end, from service intake to warranty claim.
- Client
- Client project · repair retail
- Role
- Full-Stack Developer
- Timeline
- 2025 · ongoing
- Year
- 2025
Overview
A production point-of-sale and operations platform for a multi-branch repair business. It unifies three roles (owner, admin, and technician) around one source of truth: every service order, payment, part, and warranty flows through a single branch-aware system.
The problem
The shop ran on paper tickets and spreadsheets. Stock across branches drifted, receipts were handwritten, and warranty history was impossible to trace. Owners had no live view of the business.
Goals
- One system for intake, cashier, inventory, and reporting.
- Role-scoped access with a clean audit trail.
- Accurate, branch-aware stock in real time.
- Professional receipts and reports, generated automatically.
Architecture
Next.js App Router with a Prisma/PostgreSQL core. Sessions are sealed with Iron Session and every mutation is validated with Zod at the boundary. SWR keeps the UI live; Puppeteer renders pixel-accurate PDF receipts server-side; the WhatsApp Business API delivers them to customers automatically.
What it does
Service order management
Intake to hand-off: device, complaint, diagnosis, parts, and status, tracked per technician.
Cashier & payments
Fast checkout with partial payments, paid-in-full tracking, and instant PDF receipts.
Inventory & stock opname
Branch-aware stock, transfers between branches, and reconciliation via stock opname.
Warranty claims
Every sale carries a traceable warranty; claims resolve against real service history.
Reports & analytics
Revenue, stock, and performance dashboards with Recharts, exportable to Excel.
Roles & security
Owner, admin, and technician each see exactly what they should: sealed sessions, validated inputs.
Generated documents
Receipts, purchase orders, and warranty slips are rendered as clean PDFs, the customer-facing surface of the whole system.
Results
The shop moved fully off paper. Stock is trustworthy across branches, receipts are professional and automatic, and owners finally have a live picture of the business.
Lessons
Modeling the domain first (orders, parts, warranties as real relations) made every feature after it cheaper. The hard part of a POS isn't the checkout; it's keeping stock honest across places and people.