Description
The objective of this assignment is to allow students to become familiar with layers architectural pattern, repository, services and unit tests.
2. Application Description
Use JAVA/C# Desktop to design and implement a ticket selling system or the Untold festival. The application should have two types of users (a cashier and an administrator) which must provide a username and a password to use the application.
The administrator user can perform the following operations:
- CRUD(Create, Retrieve, Update and Delete) on cashiers’ information.
- CRUD on the performances at UNTOLD (Tiesto/ Armin/ Martin Garrix/ …). Keep track of the Genre (Techno, Pop, Rap), Title (One last night in Berlin), Date and time of the show (2021 – 08 – 03 1am) and the Maximum Number of tickets per show (20000).
- Administrators can export all the tickets that were sold for a certain show (either in a csv or json file).
The cashier can perform the following operations:
- Sell tickets to a show. A ticket contains the show and can contain one or more places (I can buy a ticket for me and my brother).
- The system should notify the cashier when the number of tickets per show was exceeded.
- A cashier can see all the tickets that were sold for a show, cancel a reservation, or edit it.
3. Application Constraints
- The data will be stored in a relational database.
- Use the Layers architectural pattern to organize your application.
- Passwords are encrypted when stored to the database with a one-way encryption algorithm (base 64).
- Provide unit tests for the number of tickets for show exceeded validation and the encryption algorithm.
- Your application should prove the use of validations (for example if the number of places in the sell ticket screen is bellow 1).
- Use factory method (not factory) for export to csv/xml.
4. Requirements
- Create the analysis and design document (see the template).
- Implement and test the application.
Â
Â