This PR introduces the function to split users into groups for application evaluation purpose. At the high level, the algorithm works as follow:
The algorithm assumes an undirected graph in which each vertex is an application and edges are denoted based on teammate email information that users provided during registration.
As the last step, the algorithm will run an additional validation logic to filter out invalid groups. If a group is invalid, then all users in that group will be treated as groups of 1 user. A group is valid if the following conditions hold:
Group size is exactly 4.
Each person in the group receives "vouch" from every other people in the group.
Notes
Function introduced in this PR is not used yet because frontend requires information regarding application scores to be able to render correctly.
Resolves #78
Overview
This PR introduces the function to split users into groups for application evaluation purpose. At the high level, the algorithm works as follow:
Notes