As the park continues to expand and introduce new attractions, it has
identified the need for a comprehensive ticket booking system to streamline the purchasing process,
enhance visitor experience, and manage attendance effectively.
The new system will allow guests to purchase tickets online and at the park, manage reservations, and
access real-time information about attractions, events, and park services. The ticket booking system will
include several types of tickets, such as single-day passes, multi-day passes, annual memberships, and
group discounts. It will maintain a user-friendly online platform where visitors can select their preferred
ticket type, choose a visit date, and make payments through various methods, including credit cards and
digital wallets.Guests can create accounts to view purchase history and manage and update upcoming visits. The ticket
booking system will be able to calculate discounts and display the guest’s purchase order history. The
system will also facilitate capacity management by tracking ticket sales in real-time, which the
administrators can view. With these robust features, Adventure Land Theme Park aims to provide a
seamless, engaging, and enjoyable ticketing experience that keeps guests returning year after year.
Requirements:
1. Design a **UML class diagram **representing the concepts and relationships in the scenario.
Ensure the use of the different types of association and inheritance relationships where
necessary. You may make assumptions about attributes (with proper access specified) and
concepts not explicitly mentioned in the problem statement. A clear description of the
relationships and assumptions must be included.
2. Write **Python code **to implement your UML diagram. Ensure that you define test cases to
showcase the program features.
3. Ensure that your UML diagram and the Python code are well-documented and structured.
4. The **Graphical User Interface (GUI) **should be intuitive, user-friendly, and visually appealing
to enhance the customer experience effectively. Below are key features and functionalities the
GUI should incorporate:
1. **Account Management: **User Account Creation/Login. Add/Delete/Modify/Display
customers’ details. View, modify, and delete purchase orders.
2. **Ticket Purchasing Interface: **Clearly displayed options for various ticket types (e.g.,
single-day passes, multi-day passes, group discounts). Each ticket type should have
essential information: price, validity, and features. The payment interface allows multiple
payment methods (credit/debit cards) with clear instructions.
3. **Admin Dashboard: **This dashboard displays ticket sales (the number of tickets sold
per day) and provides access to modify discount availability.
5. All details must be stored in **binary files using the Pickle library **in Python. Multiple binary
files may be used to store related information.
6. Any exceptional or erroneous input must be appropriately handled.
7. All **scenarios must be tested **to ensure all requirements are met. Explain the different types
of testing that was done to ensure that all requirements were met.
Submission:
1. This is a group project. Each group is 1..3 (maximum of 3 in a group).
2. Submit **a report **(single PDF file) that has the following sections:
1. UML Class Diagram and Description
2. Python classes (copy-paste the code, NOT an image of the code)
1. The code must be well documented with good coding standards followed.
2. **File Structure: **include an example of all the file structures.
3. Screenshots of GUI and output must be included.
Below is an example table for a ticket booking system for a theme park, showcasing various ticket types,
pricing, and relevant details.