# Multi scheduler
## What does it do?
This program, running in a web browser, generates a schedule for playing a game, tennis, for example.

## Example
6 people want to play tennis weekly.
On any play day, 4 players are needed,
so there is a need for a schedule to determine who plays when.
And, to avoid embarrassing non-discussions, it is also nice if the schedule determines who pays for the coffee.

## Features of the program

### Input
* The language (English, Dutch, ...)
* Start and  end dates of the schedule and the weekdays you want to play.
* The dates that a player is not available (vacation, for example).
* The dates are not playable at all (Xmas, for example).
* Should the program generate teams or not.
* Which players should not go in the same team (e.g: some couples do not want to play in the same team).
* Emails, telephone numbers, ratings and gender of the players.
* A list of reserve players: not in the schedule itself but available if there not 
enough players on a particular date.
* Extra information: Location, time, etc.
* Override the decisions made by the program (e.g: you really want somebody to play at some date).

### Output
* The output is a scheme in the form of a PDF file, which you can sent to your mates.
* In this scheme teams are defined for every playing day.
* A suggestion is made who pays for the drinks.

### The program tries to achieve the following goals
* Every player plays the same number of games.
* Teams are different on each playing day.
* The number of not-playing days in a row is minimized for each player.
* Competing teams are equal in strength.
* Teams are composed of a male and a female.

### Saving of input data
* The data used to compute the schedule can be saved and retrieved later on.
* The data is saved on the computer where the web browser is running, typically in
the folder ```Downloads```.
* No information is stored on the server.
* Cookies are not used.

### Printable version of the computed scheme
* In general, the program is to be used by one person who generates a schedule, prints the schedule
on paper or to a PDF file and shares this with her playing mates.

### Languages
* The program speaks Dutch, English, French, German, Spanish and Ukrainian
(thanks to [google translate](translate.google.nl])).
* If there is interest for other languages, [let me know](/contact/){target="_blank"} and I'll see what is possible. 

### Limitations
* The program handles schemes with up to about 50 dates well. 
* Above 50 dates, the program has difficulties to find an optimal solution.
* If you have 50 or more dates, it is best to split the scheme into 2 or more shorter ones.
* Computing time is limited to 20 seconds. This limit can be hit when dealing with
more than 50 dates, depending of the speed of your computer.


## See also
* Another tennis related program which generates a schedule for a tennis tournament is available [here](/web_apps/alracTTG/).
