← Selected work
Case study · Fintech / back office

A financial operations system for a travel business

AGT Dashboard pulls a travel business's back office into one place — transactions, bills, vendor payments, client invoicing, and payment tracking — on a type-safe monorepo with a domain-driven NestJS backend.

Role
Full-stack engineering
Timeline
Apr 2025 – present
Stack
NestJS · React · Prisma · Postgres
Status
In progress
cover — AGT Dashboard
i
Draft — scaffolded from the repo. Replace with the real narrative, metrics, and screenshots once they're ready to share.

The problem

The travel business ran its finances by hand — transactions, vendor bills, client invoices, and accounts receivable/payable all tracked across spreadsheets and disconnected steps. It was slow and error-prone, and there was no single record that operations and finance could both trust. The brief was to turn that into one integrated system.

How it's built

01One model for the whole back office

A single Prisma/Postgres schema covers transactions, bills, invoices, AR/AP, vendors, clients, journal entries, and petty cash — so every screen reads from the same source of truth, with Redis caching the hot paths.

02Type-safe from database to UI

Zod schemas in a shared @agt/contract package define the API contracts once and are reused by both the NestJS backend and the React frontend, so the two can't drift out of sync.

03A domain-driven backend

The backend follows DDD with a CQRS split — separate command and query paths over aggregates and repositories — plus role-based access (master, admin, sales, finance) on JWT auth.

screenshot — transactions & invoicing

The financial flow

Transactions (hotels, tickets, accommodation) are grouped into bills, turned into AR/AP records and client invoices, and tracked through to payment — with profit calculated and kept consistent as prices and amounts change.

Where it stands

Roughly fourteen months of active development across 200+ merged pull requests, shipping continuously through a CI/CD pipeline — backend to Fly.io, frontend to Vercel, with a fully containerized dev environment. It's still in active development rather than a launched product with measured outcomes; recent work has focused on getting the financial calculations exactly right.

Have something like this?

I'm open for projects from July 2026, two slots. Tell me what you're trying to build and I'll reply within two working days.

Start a project →