. LO1 - Design and implement a substantial software artefact.
. LO2 - Evaluate, choose and employ appropriate data structures and algorithms.
. LO3 - Refactor part of a software item to achieve a specified goal.
. LO4 - Be able to design a test suite, and perform a set of tests.
Students should submit on Studynet the following three items:
The marks will be based mainly on the report in the pdf document and the jar file. Source code will
be checked to confirm both that the work has been implemented by yourself, and its design.
. UML Class diagram.
. Working jar file.
. Use of version control, with suitable commit messages.
. Appropriate design and implementation.
. Use of JUnit testing.
. Report format and writing quality.
Implement a system according to the following description
The Pi Tuition Centre (PTC) needs software for managing lesson bookings made by the students. The centre offers different group tuition lessons on both Saturday and Sunday. The tuition lesson subjects could be English Comprehension, English Writing, Math, Verbal Reasoning, etc. Each lesson can accommodate 4 students at most.
For either day (Saturday or Sunday), there are 3 tuition lessons per day: 1 in the morning, 1 in the afternoon, 1 in the evening. The price of each lesson is different. The lesson price for the same subject will remain the same even if they run at a different time.
A student who wants to book a lesson on a day needs to select the specific lesson time (i.e., morning, afternoon, evening). Students are allowed to change the date/time of the booked lessons, provided there are still spaces available for the newly selected date/time in the same subject. A student can book as many lessons as they want as far as there is no time conflict.
After each tuition lesson, students are able to write a review of the lesson they have attended and provide a numerical rating of the lesson ranging from 1 to 5 (1: Very dissatisfied, 2: Dissatisfied, 3: Ok, 4: Satisfied, 5: Very Satisfied). The rating information will be recorded in the system. After four weeks (four weekends), the user of the system must print:
In your final deliverable, provide data covering at least 4 different types of tuition subject lessons, 10 students, and 20 reviews (with rating), which can then be displayed in the output reports. You need to design at least 8 weekends teaching timetable by yourself. The system should also allow new students to be registered and then book the lessons.
Note: you do not need any kind of external database for this program. The final program should be selfcontained. The reports can be printed to System.out, or output to a suitable GUI interface. You also do not need any kind of security protocol: just allow the user to identify themselves with a unique name or ID.
Your tasks:
Include the attributes and key methods.
Discuss: