Due: May 01, 23:55.
Language: Java
Submission:
Context: You are given the courses offered for one semester in CodeHero Academy. Your task is to write a program to query these courses accordign to some criteria. The requirements for this new software are:
As an example, the output of querying all courses that are offered at room CK:FEAS: G16 is provided here.
Course information has been provided to you as a JSON file here. In Java you’ll need to use a JSON API to parse the contents of the file.
Read the JSON data and convert it to in-memory CoursesOffered object that holds Course objects. You will certainly need to create more objects to hold information of a course: room, instructor..etc. You’re expected to figure it out yourself. Examine the JSON data carefully for this.
In this part, you have to write your own CoursesOffered and Course classes (and any other class that is needed to hold information about a course).
Provide a console-based interaction for the user to run queries on your data. Your interface should allow the user to:
The design of your CLI is left to you this time. Please make sure it’s easily understood and interacted with.
All of this information should be calculated at query time from your objects and not be hard-coded into your source. Your program should be console-driven, that is it should start up, prompt the user for input, and be able to perform any combination of valid operations without exiting. Also, be careful to check for invalid input. The JSON data should be parsed once at the beginning of the program. After you construct your objects, do NOT use the JSON data to calculate the answer to a user query; all those calculations must be done through the objects.
Refactor your code. In addition to appropriate naming, clean and short and well-defined functions, apply what you have learnt from formatting lecture. Make sure that you don’t have any code smells in your code.
Watch this video.
Watch this video. This is the demo of a similar assignment assigned on previous semesters (CSAir).
Penalties: