Online bookstore Exam
You are tasked with developing an online bookstore application in java. The application should allow users to browse and purchase books from various categories .you need to design and implement the system using OOP principles.
- Packages: Package Classes Accounts -User.java -Administrator.java -Customer.java
Inventory -Bookstore.java -Book.java -Category.java -All category classes(Fiction, Non-fiction, Mystery) Executable -Cart.java -Main.java
-
User Class + (Customer and Administrator classes) β’ User auto-generated ID, firstname ,lastname ,address, phone β’ Implement two child classes namely (customer and administrator classes) with appropriate distinct fields ,e.g, administrators must have login privileges (username, role, password) and customers may further have credit points at every purchase and will determine discounts in future purchases. β’ Customer profile should also have a collection of books bought β’
-
Book Class β’ Create a Book class that represents a book with attributes such as auto -generated ID,title, author ,price, and isbn(International Standard Book Number) β’ Implement proper encapsulation for these attributes.
-
Category Class β’ Create a Category class that represents a category of books (e.g, Fiction,Non-fiction,Mystery). β’ Use inheritance to ensure that each category inherits common attributes from a parent class ,such as name and description.
5.Bookstore Class: β’ Create a Bookstore class that manages the collection of books available for purchase. β’ The bookstore must have an ID and a location. β’ Implement a method to add to the books to the storeβs inventory, taking into consideration quantities of books stored β’ Implement a method to search for books by title or author within a specific category. β’ Allow store administrators to manage the inventory ,adding and removing books.
-
Shopping Cart: β’ Design a shopping cart that allows customers to add and remove books. β’ The cart must have an auto-generated ID, Customer ID, store ID and seller ID β’ It must have a list of books selected and their quantities ,also, ensure that the shopping cart can calculate the total cost of the items added. β’ The cart must invoke methods in the bookstore class toc check whether required quantities to be purchased are available and reduce the stock when purchases are made.
-
Exception Handling , Abstraction and Polymorphism β’ Implement exception handling for scenarios like adding duplicate books to the shopping cart or searching for a book that doesnβt exist. β’ Utilize abstraction to hide the internal implementation details of the Book class while providing a public interface to access its attributes. β’ Implement polymorphism by creating different subclasses of Category (e.g., FictionCategory , NonFictionCategory) that override methods like getDescription.
Guidelines:
β’ Start by creating a class diagram that outlines the relationships between classes and their attributes /methods. β’ Use appropriate exception classes for exception handling(e.g., DuplicateBookException, BookNotFoundException) β’ Test your application thoroughly with a menu driven method by: ο§ Create bookstore. ο§ Create category. ο§ Create books. ο§ Manage Inventory ο§ Customer Shopping
You may add other menus you dim necessary to demonstrate your creativity.