Dynamic Group Allocation
It would significantly improve group allocation if the user can, after the system has made an initial proposal, rearrange students to projects. After making some rearrangements, the user should also be able to rerun the algorithm, but considering their previously rearranged users as "fixed", to reoptimize remaining students over projects.
The way I envision this is some form of drag and drop interface helping with the group construction.
Components
- Drag and drop interface
- Highlights for now fixed users and a way to unfix them
- Statistics/graphs which dynamically update based on how good the arrangement is
- Logic to transform the current state of the allocation into the corresponding user/group fixes, and sending that to the grouping algorithm
- Robustness against losing progress (autosaving of allocation in temporary info, such that one such allocation per course is temporarily saved?)
Note: ignore everything above, may be outdated.
Tasks:
-
Create an API endpoint which creates groupings based on certain parameters passed to it -
Create a basic interactive page with JS (Anna) - Initially no settings need to be configurable
- It has an "Apply" button to make an asynchronous request to to the API endpoint to run the algorithm
- While waiting for the algorithm to finish, a spinning wheel should be shown over the entire page and nothing should be modifiable.
- When loading is completed, the groups should be displayed.
- On the left, there should be a list of all constraints (initially just a placeholder for that list). Below that list, there should be the "Apply" button.
- On the right, groupings should be shown in a similar way to the user card in the drawings below.
Edited by Martin Mladenov