The problem, the
decisions, and the
software.
We show work as a system rather than a gallery of screenshots. Where we cannot yet publish the real decisions, the slot stays empty. Nothing on this page is invented to make the portfolio look larger.
MotorBazaar
One operating system for vehicle inventory, preparation, enquiries, and daily dealership work.
- Problem
- Fragmented workflow across disconnected tools
- Our role
- Product design and full engineering
- Scope
- Inventory, preparation workflow, enquiry tracking, dealer roles
- Stack
- TypeScript, Node.js, PostgreSQL, AWS
- Shown note
- Interface preview built with sample data
Inventory
+ Add vehicle2024 Atlas SESUV · Automatic · 1,800 km
Listed2023 Valor P250SUV · Automatic · 25,600 km
In prep2024 Civic SportSedan · Automatic · 8,100 km
Listed2022 Corolla AltisSedan · Automatic · 44,200 km
Reservedvehicle_state.sql -- A vehicle only moves forward through real steps. create type vehicle_state as enum ( 'intake', 'prep', 'listed', 'reserved', 'sold' ); create table vehicle ( id uuid primary key, dealer_id uuid not null, vin text unique not null, state vehicle_state not null );
A car is a state,
not a row.
The first instinct is to model a vehicle as a list of attributes: make, price, photos. That breaks the moment someone asks why a sold car is still in the workshop. The model gives every vehicle an explicit lifecycle, enforced in data rather than only in the interface. Every transition is legal, visible, and auditable.
Case study two.
This space is intentionally empty until the work can be shown with an approved problem statement, decisions, and evidence. We do not manufacture portfolio entries.