PROFESSIONAL ACADEMIC STUDY RESOURCES WEBSITE +1 813 434 1028 proexpertwritings@hotmail.com
Programming Question
Description
Assignment due Thursday, December 5, 2024 by 11:00pm
Assignment 3
Scenario:
The Adventure Land Theme Park is a popular destination for families and thrill-seekers, attracting millions of visitors each year. 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.
Below is an example table for a ticket booking system for a theme park, showcasing various ticket types, pricing, and relevant details.
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:
- 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.
- Write **Python code **to implement your UML diagram. Ensure that you define test cases to showcase the program features.
- Ensure that your UML diagram and the Python code are well-documented and structured.
- 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:
- **Account Management: **User Account Creation/Login. Add/Delete/Modify/Display customers’ details. View, modify, and delete purchase orders.
- **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.
- **Admin Dashboard: **This dashboard displays ticket sales (the number of tickets sold per day) and provides access to modify discount availability.
- All details must be stored in **binary files using the Pickle library **in Python. Multiple binary files may be used to store related information.
- Any exceptional or erroneous input must be appropriately handled.
- 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:
- This is a group project. Each group is 1..3 (maximum of 3 in a group).
- Submit **a report **(single PDF file) that has the following sections:
- UML Class Diagram and Description
- Python classes (copy-paste the code, NOT an image of the code)
- The code must be well documented with good coding standards followed.
- **File Structure: **include an example of all the file structures.
- Screenshots of GUI and output must be included.
- Github repository link, with access, made public:
- Ensure to include the gradual progress of your work in the Github repository.
- Include the text files/pickle files created to ensure your code works as required.
- The repository would indicate the cumulative progress of your work in the assignment.
- The repository must have the final working code available no later than the last day of submission.
- Summary of learnings
- LO1_OOAD: Analyze and design software that map real-world entities and relationships using Unified Modelling Language (UML) notations.
- LO2_OOProgramming: Create working object-oriented programs in a computer language that are well- structured, error free, and can solve computational problems.
- LO3_SWImplementation: Develop and test interactive multi-tier software applications, in a group, that ensures one or more CRUD (create, read, update, and delete) operations.
- LO4_SWDocumentation: Communicate with a clear and precise style that is suited to an appropriate audience to produce well-documented code, design documents, and presentations that are readable and understandable.