ImitPlanner is an open-source cross-platform library under GPLv3 license that is intended for planning working time when performing a large number of tasks of approximately the same complexity (E. g., when preparing for exams on your own). It works on the principle of simulation.
The main library class is ImitPlanner. Diagram illustrating method genKeyDates() of that class from a functional point of view
The ImitPlanner class is designed to fit into the MVC and MVP pattern. Key dates and description of time intervals are passed to the SimpleView class as messages (pattern "Observer").
The library code is presented in the ImitPlanner.py file
Exams in 3 subjects (subj 1, subj 2, subj 3) will be held on 2024-03-20. To prepare for them, you need to solve all the tasks from the books:
Preparation will start on September 5, 2023. For some time you will combine study with work and will be able to solve only 5 tasks per day in subject 1 and 2, and only 1 task per week in subject 3. Then you will be able to devote all your time to studying and the productivity of preparation will increase. You also must keep one week in reserve.
You would also like that after completing the study of subject 1 or 2, the freed up resources would be directed to the study of the second subject. Since item 3 is relatively easy and the resources involved in studying it are insignificant, then after the completion of its study, they do not need to be redirected anywhere.
- Is there enough time to complete the plan?
- If enough, then what dates should you focus on when doing it?
PlantUML code for Gantt diagram code generated by the instance of the PlantUMLCodeGenerator class.
Gantt diagram generated based on that code
- Put the ImitPlanner.py file in the same directory as your code
- Add the following line to your code:
from ImitPlanner import * - Write the code as shown above
- You can create your own class, connect a GUI, etc.
- Have fun!
If this option is True, then start dates for subjects and sources are also generated
planner.genKeyDates(verbose=True)
See example of code above
Before this, their study took place in one group (now group with GID=0 by default), within which the redistribution of performance took place. Items with similar labor units can now be grouped into separate groups.
See description of the training modes setting format above.
Studying items with this option begins only after the item specified in the startAfter parameter has been studied.
See example of code above








