Problem
Lab assets were tracked by hand.
Stock levels, item condition, and low-stock items were hard to see at a glance, and there was no quick record of recent changes.
Featured Case Study
A full-stack dashboard that replaces manual college-lab asset tracking with live stock counts, item condition, low-stock alerts, charts, and a recent-activity feed.
Problem
Stock levels, item condition, and low-stock items were hard to see at a glance, and there was no quick record of recent changes.
Approach
Summary cards for totals and categories, a clear add/edit flow, condition tracking, low-stock flags, and a recent-activity feed — all in one view.
Build
An Express REST API handles CRUD, MongoDB stores the inventory, and Chart.js renders category and condition breakdowns. A dark mode keeps it comfortable to use.
Result
A live, hosted application demonstrating end-to-end ownership: data model, API, visualizations, responsive UI, and deployment.
Results
Figures read from the live deployment.
Decisions & Tradeoffs
A small app is the right place to practise the decisions large apps are made of.
API
The Express API owns the data and the browser owns the view — the shape most product teams actually work in. Tradeoff: more moving parts than a small app strictly needs, chosen deliberately for what it teaches.
Data
An inventory item — name, category, room, condition, stock — is naturally one document, so reads and writes stay simple. Tradeoff: the chart breakdowns need aggregation work that a SQL GROUP BY would hand over for free.
Validation
Client-side checks are for the user's convenience; the API checks are the actual guarantee. I hold this rule because I have bypassed enough forms in security labs to know the difference — the reasoning is in this garden note.
Hosting
The live demo costs nothing to keep up, which is why it is still up. Tradeoff: a cold start can take 30 seconds — so the page says so next to the button instead of letting a visitor think the app is broken.
What This Shows
This project proves I can design a data model, build an API, persist data, visualize it, and ship a working full-stack product — not just a front end.
Define inventory items, categories, condition states, and stock thresholds.
Express API + MongoDB for CRUD, Chart.js for category and condition views.
Responsive UI, dark mode, and deployment to a live host.