pharmacy management system
a pharmacy system for managing prescriptions, from creation and validation to preparation and pickup.
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.
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.
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.
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.
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.