Question: Please Solve with Java Project title: Museum Management System You are required to implement a fully functional management system for a museum. The project should
Please Solve with Java



Project title: Museum Management System You are required to implement a fully functional management system for a museum. The project should contain backend and frontend functionalities that can help the employees and the visitors to interact with the museum. The system should be implemented by using console interface, i.e., all input and output interactions should be done via the java console. Class diagram: This class diagram explains the relationship between the different required classes and their minimum member requirements. void getAvailableGuideDale AmayListGuide distood addGuide(void > One Time Ticket (ult package OneTime Ticket MuseumWorkingDays deut package SUNDAY: MuseumWorkingDays TUESDAY: MuseumWorkingDays MuseumWorkingDayto type 0.1 Ticket Type > Walter default package record id in Wit_count Visitor getRecord dat setRecord intod getVisitsArrayList> wators Employee 0 employment_id int shirDute: Date Employee gelint seteld) void Hint Date satirene (Date void toString String VDALY TicketType MONTHLY TicketType VYEARLY: TicketType TierType) guides > Visitor Record default package anteringDate: Date - enteringTime Date Visto Record > Ticket (default package) issue Date: Date price: int Ticket getissue Date:Date setissue DateDate) void getVisitor()Visitor . setVisitor Visitor):void getPrice:int setPrice(int):void > Person (default package) a name: String aid int dob: Date Person) getName(): String setName(String) void getidint set dint). void getDob) Date setDob Date) void toString String > MuseumSystem (default package) MuseumSystem getVisitors(): ArrayList):void .getAvailableGuides(Date): ArrayList add Visitor:void addGuide():void -wisho > One Time Ticket (default package) One TimeTicket) > MultiTime Ticket (default package) & MultiTime Ticket) 0.1 workingdays 0.1 > MuseumWorkingDays (default package) VSUNDAY: MuseumWorkingDays TUESDAY: MuseumWorkingDays MuseumWorkingDays( -type 0..1 > - vartbrs Employee (default package) - employment_id int hireDate: Date Employee geteld).int seteldint):void getHireDate():Date setHireDate(Date):void otoString String > Visitor (default package) a record_id int a visits count: int Visitor getRecord_id); int setRecord_idfint):void getVisits( ArrayList> TicketType (default package) VDAILY Ticket Type MONTHLY: Ticket Type VYEARLY: Ticket Type TicketType() -visits -guides .. > RegularVisitor (default package) RegularVisitor book Tour():void > VisitorRecord (default package) - enteringDate: Date - enteringTime: Date VisitorRecord > Receptioniest (default package) Receptionist registersubs(:void issue Ticket(); void deleteSubs(void editSubs(void > Guide (default package) toursPerDay:int Guide getLanguage(): ArrayList setLanguage(ArrayList) void getToursPerDay(int setToursPerDay(int):void toString(): String Hanguage : Languages (default package) VARABIC Languages VENGUISH Languages Languages Further description: The project consists of the following classes: 1. MuseumSystem: This class contains all the basic information about the museum like, list of hired employees, list of subscribed visitors, working days, name, address and so on. 2. Person: this superclass identifies the basic information of any person in the system, such as name, address, id number and date of birth. 3. Visitor: a subclass from the Person class. This class contains the basic information of any visitor of the museum such as record-id and number of visits done by the visitor. This class has two subclasses (regularVisitor and Senior Visitor). The difference between those two types of visitors is that senior visitors are eligible for a discount rate on the price of tickets. 4. Employee: this is a subclass of the Person class. It contains the basic information about the employees of the museum. There are two types of employees: a receptionist and guides. The receptionist is responsible for issuing tickets and subscriptions to the visitors. The guides are responsible for taking visitors on tours around the museum based on reservations. Each guide should specify his/her working days, the maximum number of tours/day and spoken languages in which he/she can perform tours. The visitors can book tours with or without guides, but when a guide is required, the visitor should specify the desired tour day and language and the system should assign the visitor with an available guide. Of course a booked tour with a guide costs more than a tour without a guide. 5. Ticket: this class contains the basic information about tickets of the museum, such as ticket-id, issue date, price and name of ticket holder. This class has two subclasses: one-time ticket which is valid for a single-entry to the museum and multi-time ticket which allows multiple entries to the museum, and the latter can be daily, monthly and yearly. Of course ticket prices should differ based on their types. You are required to implement a testerClass to test all the functionality of the system and to provide a basic interface with the user. Assume this testerClass interacts with the receptionist of the system who is responsible for registering guides, visitors and issuing tickets and subscriptions to the visitors. The interface should be implemented as a menu-based interface by using the java console for input and output. The menu should be shown infinitely until the user enters the option (exit). Example of one menu entry: Register a guide: - Enter guide's name: - Enter guide's address: Enter guide's date of birth: Enter guide's id number: Specify guide's working days (maximum 5 days/week): Specify guide's number of tours/day (maximum 3 tours/day): Specify guide's spoken languages: General Notes: - Feel free to add any extra features to the system as you find fit. What we proposed is the minimum requirements of the system only The system should be fully-implemented with a friendly user interface by using the console. Work is individual, any detected plagiarism will be assigned a grade of zero immediately