Tyras
The system a vehicle export company runs on: every car from the auction lot to the ship, and every paper the port asks for on the way.
The order, the container, the paperwork, and the money.
The order
Every car starts as an order: the lot it was bought from, the VIN, the buyer number, where it is going. Thirteen states carry it from new to complete, and the ones that matter — arrived at the yard, out for delivery, loaded for export — are set by the system itself, not typed in by hand.
The container
Cars are grouped into containers of twenty, forty or forty-five feet, each with its own tare weight, its port of loading and its shipping line. A container knows what is inside it, and what the port will ask for it.
The paperwork
Fifteen documents come out of the system: the bill of lading, in a Montreal variant and a Vancouver one; the dangerous-goods declaration; the loading instructions; the dispatch confirmation; and invoices under three company names.
The money
Invoices in Canadian dollars, US dollars and euros, with GST and Quebec’s QST. The exchange rate comes from the Bank of Canada and is frozen onto the invoice, so a document from six months ago still reproduces exactly.
From an auction lot to papers that write themselves.
-
1
The car is bought and becomes an order
A lot number, a VIN, an auction. From that moment the car has an address in the system, and everyone who touches it — dispatcher, driver, yard loader, carrier — sees the same one.
-
2
The photo moves it forward
The driver gets the job as a Telegram card, with the map and the deep link. He does the work, opens the app and uploads the photos. The group he files them under is the state the order takes: received at the yard, delivered, loaded for export. Nobody types a status.
-
3
The papers write themselves
When the container is ready, the documents come out already filled: the bill of lading for the right port, the dangerous-goods declaration with the right UN number for the batteries inside, the loading instructions with every VIN and its photo.
The car is entered once, at the auction. Everything after — the yard, the container, the ship, and every paper the port asks for — is the same record moving.
Interface, services, data, and how the documents ship.
Interface
Thirty-seven screens: the order, the container, the paperwork and the money, for whoever is signed in.
- TypeScript
- React 18
- Vite
- PrimeReact
- TanStack Query
Services
Reactive Java services behind a single Keycloak login, shared by every one of the seven roles.
- Java
- Spring Boot (WebFlux)
- Keycloak
Data
MongoDB for the orders and the containers, PostgreSQL for the people who use the system, and object storage for the documents themselves.
- MongoDB
- PostgreSQL
- S3
Documents & delivery
Fifteen documents built as PDFs and spreadsheets, the job sent to drivers on Telegram, and every part shipped in its own container.
- iText 7
- JasperReports
- fastexcel
- Docker
- GitLab CI
- Telegram
The difficult parts are the papers, the batteries, and the money.
Papers a port will accept
A bill of lading is not a PDF with a logo on it; it is a legal form whose every field sits where the carrier expects it. Close to twelve thousand lines exist only to place text on pages — eight hundred for the Vancouver variant alone, and another for Montreal, because the two ports do not ask the same questions.
The battery decides the paperwork
An electric car is dangerous goods. The declaration scans the container’s vehicle list and fills in the right UN number — UN 3556 for battery-electric, UN 3166 for hybrid — so the form matches what is actually inside the box.
Money that stays reproducible
Amounts are held in exact decimals, never floating point. The rate comes from the Bank of Canada and is written onto the invoice itself, so reprinting a six-month-old document gives the same numbers, not today’s.
Still shipping, two years in.
Thirty months, from February 2024, and still going. Twelve names appear in the history; six people; four carried it.
Two years in, and still shipping.
Have a project idea? Write down a quote!
Got a project? Drop us a line if you want to work together on something exciting. Or do you need our help? Feel free to contact us.