important note ” don’t use AI and don’t use others work and work based on the de

important note ” don’t use AI and don’t use others work and work based on the details.
E-bookstore Management System
Problem Statement:
The Great E-books Store requires a software application to enhance the customer experience and streamline internal operations. The critical requirements for the software application are as follows:
E-book Management: The system should maintain a comprehensive catalog of the store’s available e-books. Each e-book should have detailed information such as title, author, publication date, genre, and price.
Customer Management: The system should facilitate customer information management, including personal details like (name and contact information). Customers can browse e-books online, create an account, and purchase e-books. Upon purchase, they should receive an invoice with details of the order, e-book prices, and any applicable discounts or promotions.
Shopping Cart and Orders: The system should allow customers to add e-books to their cart, remove items, or update quantities. Orders should reflect the number of e-books and order date. E-books are delivered instantly upon purchase completion.
Discounts and Pricing: The system should support flexible pricing and discount options. The e-book store’s loyalty program members receive a 10% discount on all purchases, and bulk purchases (5 or more e-books in a single order) receive a 20% discount.
Payment and Invoicing: Each order should generate an invoice detailing the itemized price, applicable discounts, and the final total. Value-added Taxes (VAT) at a fixed rate of 8% are applied to all purchases.
Requirements:
Design UML Class Diagram Design UML class diagram representing the concepts and relationships in the scenario. Ensure to use inheritance or association (aggregation and composition) relationships. 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, modularity, and assumptions must be included. All classes to meet the requirements must be identified (a minimum number of required classes is six (6)), and students are expected to demonstrate knowledge of different types of relationships.
Write Python Code to Implement Your UML Class Diagram Implement the Python classes based on your UML diagram. Make sure to:Group the classes into different files for good modularity.
Use docstring, private/protected attributes, getter and setter methods, and a __str__() method for all classes.
Include comments and documentation to ensure good readability.
The submitted code must be error-free and have well-formatted output. Each student’s work will be unique in terms of the code and output.
Define Test Cases Write test cases in a separate file to demonstrate all the program’s features. Ensure to test all features. Some examples of test cases are (not limited to):Add/Modify/Remove a new e-book to the e-bookstore’s catalog.
Add/Modify/Remove customer account.
The addition of e-books to the shopping cart.
Applying discounts for loyalty program members or bulk purchases.
The generation of an invoice showing relevant discounts and required payments.
Submission Details:
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 and follow good coding standards.
Github repository link, with the access made public:Ensure that your code is updated in GitHub.
Ensure that you include the gradual progress of your work in the Github repository. The repository would indicate the cumulative progress of your work in the assignment.
Summary of learnings
Assignment Information
Weight:20%
Learning Outcomes Added
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.
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.