$40
UTCN Computer Science Department Software Design
ASSIGNMENT A1
==================================================================== 1. Objective
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.
5. Deliverables
- GIT link with:
1. Analysis and design document.
2. Source files.
3. SQL script / Migration project for creating and populating the database with initial values.
6. Deadline – 2 weeks