Skip to content
Komsan Nipharat

Case study

TMS Light

Lightweight transport billing product: work order → invoice → receipt, plus aging and revenue reports.

FIG.1Logistics
Role
Founder of the repo; sole frontend and infrastructure developer (81% of commits)
Stack
AngularNestJSMongoDBTurborepoPlaywrightGitLab CI
Result
Scaffold to UAT in < 4 weeks.

Problem

Smaller carriers needed the billing half of a TMS without the full yard platform.

What I owned

Founder of the repo; sole frontend and infrastructure developer (81% of commits)

What I built

  • Built 17 lazy-loaded feature areas and the shared atomic component library.
  • Built A4 invoice and receipt print layouts matched to the design.
  • Stood up CI/CD and the UAT environment, with a Thai deploy runbook.

System shape

pnpm + Turborepo monorepo. Angular 22 (zoneless, signals) back office, NestJS 11 + Mongoose API, a shared-types package as the contract, Playwright E2E, GitLab CI to Huawei SWR.

What changed

From empty scaffold to a running UAT in under four weeks.

Outcome

Scaffold to UAT in < 4 weeks.