ElixirCLE / pairmotron

Programming Pair Pairifier
https://pairmotron.herokuapp.com
5 stars 4 forks source link

Add accomplice for grouping #175

Closed mbramson closed 7 years ago

mbramson commented 7 years ago

Adds the Accomplice library which can pair up any number of users to replace the current logic in the Pairer module. This offloads a bunch of that logic to a library that is more generic, and generally make a lot of the code in the Pairer module a lot easier to understand.

This also paves the way for future groups to be able to configure what sizes of groups they'd like to generate, as the Accomplice library allows the specification of these parameters.

This also paves the way for groups to be able to prevent users from previous weeks from pairing again, as well as giving users the ability to specify that they would like to be paired with someone specifically the following week.

This also adds the OrderInvariantCompare library which can be useful for testing lists lists of values when you don't really care about the order of the elements of the returned lists, you just care about how many elements are in each list.