No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Raphaël LACROIX 82d5c3f840 Typo and variable name change 1 year ago
.idea cleanup 1 year ago
_build polished readme (typo + clarification of examples) 1 year ago
graphs First Commit 1 year ago
src Typo and variable name change 1 year ago
.gitignore added visualisation 1 year ago
.merlin cleanup v2 1 year ago
Example_without_source_1.png polished readme and added terminal quality of life improvements (clear) 1 year ago
Example_without_source_2.png polished readme and added terminal quality of life improvements (clear) 1 year ago
Example_without_source_3.png polished readme and added terminal quality of life improvements (clear) 1 year ago
Graph_example.png polished readme (typo + svg to png) 1 year ago
Graph_example.svg polished readme and added terminal quality of life improvements (clear) 1 year ago
INPUT various refactoring 1 year ago
Makefile polished readme and added terminal quality of life improvements (clear) 1 year ago
README.md polished readme (typo + clarification of examples) 1 year ago
_tags First Commit 1 year ago
appMedium.native added inputs support. The application can read its input. Missing the output part. 1 year ago
example_with_source.png polished readme and added terminal quality of life improvements (clear) 1 year ago
outFileApp polished readme (typo + clarification of examples) 1 year ago
outFileApp.svg polished readme (typo + clarification of examples) 1 year ago
outfile added display support for ints + main tested. Ford Fulkerson Finished 1 year ago
test.svg added display support for ints + main tested. Ford Fulkerson Finished 1 year ago

README.md

Project undertaken by Aurélia LEJEUNE and Raphaël LACROIX as part of our 4th year course on functionnal programming

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 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

So it may look like :

Foot 15
Hockey 12
Piscine 15
Poney-aquatique 2

Jean 1 2
Jean-Michel 5
Jean-Claude 1
Jean-ti 1 6 2

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

example_with_source.png

with the CLI

Example_without_source_1.png Example_without_source_2.png Example_without_source_3.png

NB

  • The application seeks to match children/students to activities/courses as a 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 (i.e. just running the Ford-Fulkerson algorithm on a test graph)
    • ⚠️ But it is needed to roll back in the git history before the changes for the “Medium” part were made like this one
  • An image of the final graph (./outFileApp.svg) can be used to get a better understanding of the algorithm here is an example : Graph_example.svg