ICT Inventory & Reporting System
Web-based inventory management and reporting system with a custom report page, built with PHP/MySQL and deployed via XAMPP with LAN access for multi-device use. Full-stack inventory system with barcode/QR lookup, custom item categories, and automated status-history reporting for IT assets.
- Client
- Personal project
- Duration
- 2 weeks
Built with
- PHP
- MySQL
- JavaScript
- XAMPP
The problem it solves
IT equipment such as laptops, network switches and handheld devices is usually tracked in a spreadsheet that only shows its current state. Once a status is overwritten, the history is gone, so simple questions like 'how many months has this laptop been under repair?' can't be answered without someone's memory.
Who it's for
IT teams, schools and offices that lend out, maintain or audit equipment and want a shared record without paying for a cloud system.
What it does
Search and scan
Find any asset by ID, serial number, name or type, by typing or by scanning its barcode or QR code with a USB scanner or a device camera.
Register one or many
Add a single item or a batch, such as ten laptops of the same model. With a scanner, each scan jumps straight to the next serial-number field.
Status with full history
Every item has a status (Available, In Use, Damaged, Under Repair, Retired or any custom one). Each change is logged with the time and an optional note, never overwritten.
Per-item reports
Each item gets a report with its full status timeline and a month-by-month breakdown worked out from that history.
Bulk updates
Change the status of several items in one action while each keeps its own history.
Your own categories
Staff can add new item types and statuses, such as 'Printer' or 'Lost', from the screen, with no code or database change.
Shared on the office network
One PC runs the server; every other device just opens a browser. Nothing to install on each computer and no cloud subscription.
How it works
6 steps
01Search the inventory
The search screen: type or scan an ID, serial number, name or type to find an asset.
02Look up a single item
A single item with its details and current status, ready to update.
03Search by type or name
Searching by type or name lists every match, so a whole category can be checked at once.
04Add one or many items
Adding items: one at a time or in bulk, with the scanner moving from one serial-number field to the next by itself.
05Bulk status update
Several items updated in one go, for example equipment damaged in the same incident. Each still gets its own history entry.
06Per-item status report
An item's report: every status change in order, plus the month-by-month summary built from it.
How it's built
- Plain PHP with no framework, using prepared statements for every database query, on MySQL. The front end is plain JavaScript, HTML and CSS, and it runs on XAMPP inside the local network.
- Item types and statuses are stored as data rather than fixed in code, so adding a new one is just a new row.
- Status history is append-only: the current status sits on the item, and every change goes to a separate log. Reports are worked out from that log, so they can't drift out of date.
- Bulk actions run inside a single database transaction: if one row fails, such as a duplicate serial number, nothing in the batch is half-saved.
- Barcode scanners work without any special driver: a USB scanner types like a fast keyboard, and the app is built around that.
What this shows I can build
Web apps and systems
Built for how your business runs, like inventory, booking and reporting, usable from any device.
More projects
- SmartApple AI Detection & ClassificationOrchard Intelligence: an AI-powered computer vision system that detects and classifies apples from images with adjustable confidence thresholds. Built as a Final Year Project, combining a YOLO/Ultralytics-based detection model with a persistent Python classification service to avoid model-reload overhead on each request.
- Postage & Delivery Route OptimizerA route-planning web app for postage and delivery workers that geocodes real-world addresses -- including messy, incomplete, or abbreviated Malaysian address formats -- and plans delivery routes, with clear reporting when an address cannot be located.
Want something like this built?
Tell me what your business needs and I'll suggest the simplest way to build it.