← Back to work

Independent · full-stack · 2024 – now

Opti-Pet

Software that runs a vet clinic: the calendar, patient records, the hospital ward, lab results and the shop counter. Used by a few veterinary clinics.

Role
Everything: product, backend, frontend, deployment and onboarding.
Domain
Veterinary
Type
SaaS platform
Status
In use
Rebuilt from the app’s own screens, with made-up data.

01 / 06 · Calendar

  1. 1 Each vet’s day side by side, in 15-minute slots
  2. 2 The colour shows the status: booked, done, cancelled or no-show
  3. 3 Hours outside a vet’s shift are shaded, so nobody books them by mistake
Rebuilt from the app’s own screens, with made-up data.

02 / 06 · Visit record

  1. 1 What the visit costs, what’s paid and what’s still owed
  2. 2 Linked to its appointment in the calendar
  3. 3 The pet and its owner, editable right from the visit
Rebuilt from the app’s own screens, with made-up data.

03 / 06 · Hospital ward

  1. 1 Every cell with its patient and status: stable, under watch, critical or free
  2. 2 Today’s tasks for the ward, with the late ones counted
  3. 3 Filter by status, or look at one room at a time
Rebuilt from the app’s own screens, with made-up data.

04 / 06 · Lab results

  1. 1 Results arrive from the lab machine, or as an uploaded file
  2. 2 Values the machine flags as out of range are shown in red
  3. 3 One click shares a result with the owner
Rebuilt from the app’s own screens, with made-up data.

05 / 06 · Owner portal

  1. 1 Owners see their own pets on their phone
  2. 2 Vaccinations, with the date each one runs out
  3. 3 Every visit’s protocol as a PDF, with what’s paid
Rebuilt from the app’s own screens, with made-up data.

06 / 06 · Shop counter

  1. 1 Scan a barcode or search to add a product
  2. 2 Prescription-only items can’t be sold at the counter; they go on the pet’s bill
  3. 3 The owner’s unpaid vet bills can be paid in the same sale

What changed

  1. Went from an idea to clinics using it every day
  2. A pet’s history follows it from one clinic to the next
  3. The hospital ward on one board: every cage, every patient, every late task
  4. Lab machine results appear in the record without anyone typing them in
  5. Owners get their own portal with their pets, visits, lab results and payments
  6. Stock, deliveries and counter sales live next to the medical side
  7. Short videos so a new clinic can get started on its own

A clinic is appointments, treatments, sick animals in cages and a shelf of medicines, all at the same time. Most of the work was getting that into the software in a way that stays out of the vets’ way.

Under the hood

For the engineers in the room.

  • Spring Boot 4 REST API on PostgreSQL and Hibernate, schema managed with Flyway
  • React + TypeScript frontend on MUI, API client generated from the OpenAPI contract
  • JWT auth with roles for staff, managers and owners. Owners sign in by phone, with codes by SMS or email
  • Hospital module: rooms and cells, recurring tasks, weight-based pricing billed to the visit, an audit log of every action
  • VetBridge: a small Python agent on the clinic PC that sends lab-analyser results to the API
  • Store module in the same app: products, suppliers, deliveries and point of sale
  • Files on Amazon S3, Docker Compose behind Caddy on a VPS

Java 21Spring BootPostgreSQLFlywayReactTypeScriptMUIPythonDockerAmazon S3