ICT Helpdesk
Complaint, asset and store system for a public health office.
- Role
- UI/UX design · Full stack
- Year
- 2026
- Platform
- Web app · Mobile-friendly
- Stack
- Laravel 13 · Inertia · Vue 3 · PrimeVue · Postgres

Overview
The problem
Clinics reported broken ICT equipment through an ageing in-house app that kept its data in flat files — there was no reliable history per asset, no view of overdue cases, and repair forms were filled by hand.
The idea
A rebuilt helpdesk where clinic staff log a fault in a minute, technicians work one shared queue, and every repair, asset and spare part is tracked to a printable form.
Built for a public health office. Shown anonymised — screens are recreated with sample data.
What I did
Design
- 01Short complaint form for clinic staff, with barcode / QR scan to pick the asset
- 02Ticket queue and dashboard for technicians, with overdue cases flagged after 14 days
- 03Role-based views: clinic users never see repair costs or quotations
- 04Malay-language UI that works on phones in the clinic
Engineering
- 01Laravel 13 + Inertia + Vue 3 / TypeScript, with three roles enforced on the server
- 02Seven-stage ticket workflow with a status log and activity log
- 03Asset register with QR labels, plus a store module using an append-only stock ledger and FIFO lots
- 04Idempotent importer that migrated the legacy app's users, assets and tickets, re-hashing old passwords
How it works
Screens



Under the hood
Vue 3 + PrimeVue
Inertia pages · Chart.js
Laravel 13
Roles · workflow · activity log
Documents
PDF repair forms · Excel export · QR labels
Postgres
Serverless, Singapore region
3
Roles: clinic user, technician, admin
7
Ticket statuses from new to closed
14 days
Overdue threshold flagged on the queue
FIFO
Stock ledger for spare parts and supplies
