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:
Role Usage Customer Regular or Normal user of the application. Can buy or exchange tickets Performer Can be booked to events and receive payment automatically through the app Venue Owner Manages 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