GatorIncubator / gatorgrouper

:busts_in_silhouette: Automated Group Formation Tool Enabling Effective Team Work
GNU General Public License v3.0
20 stars 20 forks source link

Add conflict handling to random algorithm #277

Closed Alex-Yarkosky closed 5 years ago

Alex-Yarkosky commented 5 years ago

Description of Pull Request

This PR adds a way for the random grouping algorithm to minimize conflicts, including assuring that the worst possible groupings are avoided due to running through multiple iterations.

Fixes #107

Type of Change

Please describe the pull request as one of the following:

Tags

Reviewers: @gkapfham @Michionlion @aubreypc @huangs1 @Lancasterwu @quigley-c @barrezuetai @sutterj @toccinAC Assignees: @Alex-Yarkosky @shafferz @ohnoanarrow @livingstonp729 @Spurrm @robert-samuel07

shafferz commented 5 years ago

Fixed build issues to make this branch merge-ready. Please review and/or merge at your earliest convenience.

@Alex-Yarkosky @Michionlion @gkapfham @sutterj @toccinAC

Michionlion commented 5 years ago

@shafferz is this branch now not "currently in progress"? If not, please update the description with all the necessary information.

shafferz commented 5 years ago

@Michionlion I have made the necessary changes. Let me know what you think!

shafferz commented 5 years ago

To address the issue of non-access: This code adds the functionality for conflict handling. The teams responsible for working on the front end and the database would need to have been the ones to add the ability of conflict reception to use the functions as we have written them. Simply put, our team had absolutely no access or ability to develop on the website to implement this feature on that end. This is strictly a back-end solution that can easily be added to the final product.

As for testing, @Alex-Yarkosky and I are working diligently to finish the test cases required for these.

Once we have resolved the aforementioned testing/logical issues (with regard to the fact that we could not have added this onto the website as we had no documentation or information on that portion of the project), would this PR be suitable for merging?

Michionlion commented 5 years ago

@shafferz @Alex-Yarkosky there should at the very minimum be a way to access this feature on the command line, which would be straightforward to implement. Take a look at run.py.

shafferz commented 5 years ago

I have updated this PR to have both written functions be tested.

After reviewing the CONTRIBUTING.md document, I believe this branch follows those guidelines. The code written adds functionality to the group_creation module in a modular fashion with updated functions. The code is also documented with docstrings and single-line comments. The provided code is also now tested, and behaves as expected. Furthermore, the code we have written does exactly as we claim:

This PR adds a way for the random grouping algorithm to minimize conflicts, including assuring that the worst possible groupings are avoided due to running through multiple iterations.

As such, I believe there is no reason for this PR not to be merged. Accessing the functions we have written through the command-line would be unwieldy, and, frankly, is a different issue entirely, for which I will take the liberty of raising a separate issue on the GitHub Issue Tracker. Considering that six team members' grades would be negatively (and wrongly) affected if this PR is upheld any longer, and the code is sound and strictly follows the contributing guidelines, I implore any technical lead (@Michionlion, @sutterj, or @toccinAC) or even @gkapfham to merge this PR immediately.