This project provides an example for using the CHOCO solver to solve scheduling problems.
In this example we are trying to slot users and privileges of a system (e.g some IT-apartment) into specific groups. Privileges can be assigned or suspended from users. The goal is to slot the users and privileges into the groups in such a way that they can access the privileges assigned, but cannot access the privileges they are suspended from.
This project uses gradle for building. Navigate from the command line into the project folder where the 'gradlew' file lies and run the following command to build the project:
gradlew build
This project uses Spring Boot to run as a webservice. To start the application navigate from the command line into the project folder where the 'gradlew' file lies and run the following command:
gradlew bootRun
The webservice can now be accessed with an API client that can send HTTP POST requests like 'Postman'.
In:
src/main/resources/static/exampleInput.json
you can find an example json, which contains the input data necessary to let the webservice calculate a solution, since we have to specify which user is assigned - or suspended from which privileges.
Put the json into the body of your post request and you should get a result as json back.