Skip to content

TransTruck

A subscription platform that trucking companies use to run their shipments, trips and fleet. Companies pick a plan, then manage bills of lading, trips, drivers, vehicles and invoicing. My part was the workshop and the warehouse: spare-parts inventory, fleet maintenance, the company's master data and the reports on top of them.

Role
Full-stack developer: Django REST APIs and Next.js screens for inventory, fleet maintenance, master data and reports.
Engagement
Cyparta Software HouseCyparta
Surfaces
Company dashboard
Links
Private client project
TransTruck: Company dashboard
costing methods kept in step: weighted average and FIFO
2
maintenance reports in four groups
13
posting path for every stock movement
1

The problem

The system already knew about trips, clients, invoices and vehicles, but not the workshop or the warehouse. Nobody could say which spare parts were on the shelf or what they were worth, the cost of a repair was an estimate, and a truck's service came up when it broke down on the road.

What it does

  1. 01Parts arrive on a goods receipt from a supplier into a warehouse and a shelf location. Each line can carry a discount, and the net unit cost is what enters stock.
  2. 02A transfer moves stock between warehouses in three steps, and only offers source locations that actually hold the item.
  3. 03A stocktake snapshots a location, records what was counted and posts the differences. Variances above the allowed limit wait for an explicit approval.
  4. 04Balances, movements and stock valuation can be read for any past day, valued by weighted average or FIFO as the company chooses.
  5. 05Maintenance policies (every X km or every Y days, whichever comes first, for the whole fleet, a vehicle type or one truck) turn into live alerts for overdue and due service.
  6. 06A work order takes the truck off the road, draws parts from stock and records labour. Closing it returns the truck to service, moves the odometer forward and sets the next service date.
  7. 07Master data holds the company's reference lists (cities and routes, cargo, trailer and fuel types, tax rates, banks, reasons, units and categories) and how each document type is numbered.
  8. 08Reports cover vehicle readiness, work orders and downtime, maintenance cost per vehicle and per kilometre, parts consumption, policy compliance and documents, plus stock valuation and reorder levels.

What I did

  • Designed the inventory and fleet-maintenance modules in Django, from the data model to the API, and wrote a business guide explaining their rules.
  • Added the master data module: lists scoped to each company, seeded with defaults, exported to Excel and granted as one permission.
  • Wrote the maintenance and inventory reports and the routes and on-time delivery reports, with Excel and PDF export.
  • Developed the matching Next.js screens as Server Components, with Server Actions for every write.

Engineering

01

Stock changes only through a document

Receipts, transfers, stocktakes and parts issued to work orders all post through one function. It locks the affected bins in a fixed order and checks availability under the lock, so two people can't take the last part. The movement log is never edited: a mistake is undone by a reversing document, and a receipt can be posted only once, so a retry never adds the stock twice.

02

Two costing methods kept in step

FIFO layers are written on every movement whatever the company has chosen. Switching between weighted average and FIFO applies from the next issue, history keeps the values it was recorded with, and the stock value doesn't jump.

03

Alerts worked out on read

Due-service status comes from the policy, the last completed work order and the odometer each time it is read, so a truck drops off the list the moment its work order closes. Reorder alerts fire once, repeat at most weekly, and re-arm only after stock recovers above the reorder point.

04

A repair costs what left the shelf

The parts cost on a work order is the value of the stock movements it caused, and a returned part goes back at the price it was issued at. Only labour is typed in by hand.

Screens

Inside the product.

Click any screen to view it full size. Dashboards show fictional demo data.

Dashboard · AR: Choosing a plan when a company signs up

Stack

Backend

  • Python
  • Django
  • Django REST Framework
  • GeoDjango
  • MySQL
  • django-filter
  • django-import-export

Frontend

  • Next.js 16 (App Router)
  • React
  • Server Actions
  • next-intl
  • TanStack Table
  • Recharts
  • Tailwind CSS

Exports

  • SheetJS (Excel)
  • jsPDF