Need implement a program that implements a study planner. The program lets a user input a list of topics that they need to study, details of their calendar (including exam and essay deadlines), and preferences on when to start and stop studying each day and how long to study for in one go. It then generates a study schedule telling them when to study each topic and for how long.
This program will be more complicated than it might first appear, because your program must follow certain rules so it can be used in two ways: either by a human (using a GUI), or by another program using an Application Programming Interface (API). You will have to implement three things:
• The planner itself, which implements a specified API
• A test harness that uses that API to test the behaviour of the simulation
• A basic GUI that allows an ordinary university student (who is not a programmer) to use the planner. This must use the API, and only the API, to interact with the planner code itself
I have provided basic versions of the above – your role is to extend them substantially according to the instructions in this document.