Class Diagram

Diagram:

Transclude of classes.drawio


Design Decisions:

Interface to allow multiple points of entry

This allows completely different implementations to depend on the same base system for business logic.

Assuming this is UML for java specifically these could be:

  • A server side rendered html application based on any JVM language’s framework - i.e. spring, etc.
  • An android/IOS app using Kotlin multiplatform.

Account Subclasses

By extending the account class, multiple subcategories of account have been created, allowing for roles such as:

RoleUsage
CustomerRegular or Normal user of the application. Can buy or exchange tickets
PerformerCan be booked to events and receive payment automatically through the app
Venue OwnerManages events - can add new events, update existing ones, cancel, etc

These roles were inspired by how Ticketmaster has different views and options for interaction based on a type of account.

Tickets

When examining existing tickets, it was apparent the need to communicate to the customer a lot of important information about:

  • Where to go
  • What time the event was on at and other event details such as the seat, who is performing, and where to sit/go
  • Some form of link to further information (QR code, bar code)
  • The cost of the ticket.

An existing Ticketmasterticket.

Currency Interface

Since a lot of different forms of currency exist which often have radically different ways of thinking about currency, an interface to provide a human readable form allows an easy way to display many options.

Link to original