The goal is to develop an application to assist in assigning members of an organization to teams
Client: Dr. Andrew Roosen, Smith 101F, 831-2413Many human activities require organizing people into separate teams. Businesses of all kinds, software development firms, and college courses such as CISC 475 are a few examples of organizations that regularly construct teams from their members.
Distributing people into teams is a hard business. To do the job effectively, various considerations must be taken into account. The exact considerations vary from application to application, but may include:
The goal of this project is to develop an easy-to-use, configurable application to assist in the team formation process. The application must be able to represent and use considerations such as those listed above, though these considerations will need to be much more carefully specified and formalized. Note that some of the constraints are hard (a solution must satisfy the constraint) and some are soft (a solution is better to the extent that it more closely approaches some ideal). It is possible for some systems to have no solution (in which case TeamMaker should report this), or to have more than one solution (in which case TeamMaker should attempt to produce an optimal solution).
The application must have a plain-text/command line interface as well as a web interface. It should be possible for members of the class to log on to the application through the web and register their preferences, and for the professor (or manager) to log on and run the tool to generate and report the team assignments. Alternatively, the professor could just run the tool via a command-line and provide a text file containing the (appropriately-formatted) input data (students, teams, and constraints).