GithubHelp home page GithubHelp logo

groupsorter's Introduction

GroupSorter

This little program can be used to sort a bunch of people into groups, based on the peoples own preferences. A person can have 3 preferences, arranges as 1st, 2nd and 3rd priority. Its really simple to use, since all you need to do is edit some CSV files.

image

How to use

Here is a little guide to how the program works.

Step 1

Either compile the program or take the one in the latest release (It will make some default csv files if none exist)

Step 2

Take a look in the settings.csv file next to the executable. It contains some general settings to limit the sorting algorithm a bit:

  • MinGroupSize: Is the minimum size a group is allowed to be
  • MaxGroupSize: Is the maximum size a group is allowed to be
  • NumberOfGroups: Is the amount of groups the algorithm should split the people into
  • OptimiseType: Is a litte addition to the satisfaction level of a group. The choices are:
    • None: Dont do anything
    • EqualiseGroups: Adjusting the satisfaction of a group depending on how equal their size is. This will make more "equal" sized groups.
  • Runs: How many randomized runs to make (adds additional randomisaton to the algorithm)
  • Threads: How many threads the algorithm should run on

Step 3

Take a look in the input.csv file, also next to the executable. Here you can add the people to be sorted, and their preferences.

  • The ID should start from 0 and go up by each row
  • The name is just there for you to know who is who
  • Preference1 is the first preference for the person. This is a ID to another person that they wanna be in group with.
  • Preference2 is the second preference for the person. This is a ID to another person that they wanna be in group with.
  • Preference3 is the third preference for the person. This is a ID to another person that they wanna be in group with.

Step 4

Run the GroupSorter.exe and wait for it to finish. The output best group will be put in the output.csv file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.