58 lines
2.7 KiB
Markdown
58 lines
2.7 KiB
Markdown
*Projet réalisé par Raphaël LACROIX et Aurélia LEJEUNE*
|
|
|
|
# What is this project about?
|
|
Ever needed to organise an day with participants (like children for instance) that can pick a variying number of
|
|
activities (like hockey football ...) from a list? Avoid yourself the hassle of filling the table by hand for three
|
|
hours just to realize that little jimmy can't go to the swimming pool because there are no remaining spots for him.
|
|
|
|
|
|
# How to use this software ?
|
|
## Installing and running
|
|
- clone this repo make sure you have [ocaml](https://ocaml.org/docs/up-and-running) installed
|
|
- in the root of the directory run
|
|
- `make app` if you want to enter the activities and participants one by one in the terminal (we won't judge you)
|
|
- `make appSource` if you prefer to enter those `./INPUT` and let the program do it for you
|
|
|
|
## Inputting data
|
|
The format for the file is as follows :
|
|
|
|
*Nb_... and id_... are numbers. The first represent the number of possible participants. The latter will be used to say
|
|
which activities the participant wants. Participant_... and Activity... must be strings of characters without spaces (you
|
|
can replace those with `_` or `-`)*
|
|
```
|
|
Activity_1 Nb_available
|
|
Activity_2 Nb_available
|
|
...
|
|
Activity_n Nb_available
|
|
|
|
Participant_1 id_1 id_2 id_3 ... id_n
|
|
Participant_2 id_1 id_2 id_3 ... id_n
|
|
...
|
|
Participant_m id_1 id_2 id_3 ... id_n
|
|
```
|
|
The formatting is the same should you input the information through the terminal. You will be guided along the way.
|
|
## Examples
|
|
### with a source file
|
|

|
|
|
|
### with the CLI
|
|

|
|

|
|

|
|
|
|
## NB
|
|
- The application seeks to match **children/students** to **activities/courses** as a
|
|
[bipartite matching](https://www.geeksforgeeks.org/maximum-bipartite-matching/) process.
|
|
- The user is asked to provide :
|
|
- The `names` and `capacities` of **activities/courses**
|
|
- The `names` and `choices` of **children/students**
|
|
- The user is **NOT ASKED**
|
|
- the order of interest among the choices for a **children/students**
|
|
- the answer to the question of life, the universe and everything
|
|
- `make test` enables you to test the first step of the project
|
|
- ⚠️ But it is needed to roll back in the git history before the changes for the "Medium" part were made like
|
|
[this one](https://git.etud.insa-toulouse.fr/rlacroix/FordFulkersonLeChameau/src/commit/5ca008700e62474cc17b2845e7d2dd061c319861)
|
|
- An image of the final graph (`./outFileApp.svg`) can be used to get a better understanding of the algorithm here is an example :
|
|

|
|
|
|
|