← projects
003 / TEAM OF FIVE / 2025

pharmacy management system

  • Kotlin
  • Spring Boot
  • Gradle
  • JUnit

a pharmacy system for managing prescriptions, from creation and validation to preparation and pickup.

WHAT IT IS

A system for the life of a prescription in a pharmacy: it is written, prepared, verified, and picked up, or cancelled along the way. Pharmacists, assistants and administrators each see and do different things.

WHY IT EXISTS

It was a software architecture course, and a pharmacy is a good excuse: the rules are strict, the roles are clear, and the cost of a wrong state is easy to imagine.

MY PART

I worked across the stack in a team of five, from the screens people use to the logic behind them, including the prescription flow and the sign-in and role handling around it.

THE INTERESTING PART

We modelled it with domain-driven design: the prescription lifecycle lives in the domain, not in the controllers, so an invalid step is something the model refuses rather than something the interface hopes nobody clicks. Roles decide which transitions each person can trigger.

WHAT I'D CHANGE

Working with a shared domain model taught me how much a team leans on names. If I did it again I would write the vocabulary down on day one, before anyone writes a class.