
Shipping management SaaS
Ternline
A logistics console where leads become quotes, approved clients accept them, and shipments are tracked through milestones, a kanban board, analytics, and public tracking links.
What I built
- Express and TypeScript API split into modules for auth, leads, quotes, shipments, notifications, and admin.
- Cookie sessions with JWT (jose) and bcrypt, plus role-based access for ops, admin, and client users. Clients can only accept quotes after their company is approved.
- pnpm monorepo where Zod schemas are shared by the API and the Next.js app, with Prisma on PostgreSQL and Docker Compose for local setup.
- Express
- TypeScript
- Next.js
- Prisma
- PostgreSQL
- Zod
- Docker
