-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Il software LabAssign permette di assengare laboratori e tavole rotonde ai tre turni di eventi previsti per ogni rover e scolta della route nazionale 2014.
Per effettuare un'esecuzione del software è sufficiente seguire i passi seguenti:
- Clonare il repository
git clone [email protected]:route-nazionale/labassign.git
- Compilare il sorgente
cd labassign/LabAssign/
ant build
ant jar
- Impostare i parametri di accesso al database nel file labassign.conf (che si trova nella root).
################################
# ACCESSO DB
#
DB_HOST=localhost
DB_USER=testassign
DB_PASS=
DB_NAME=provvisorio
################################
- In base alla propria configurazione si puo' rendere necessario la creazione di un tunnel SSH
ssh -L 3306:localhost:3306 -p 222 bp.rn2014.it
- Avviare l'esecuzione con il comando
java -jar labassign.jar labassign.conf
All'interno del file labassign.conf è possibile imposare i parametri di priorità con cui vengono assegnati i laboratori.
L'algoritmo procede per passate, cercando di assegnare prima tutti i ragazzi cercando di far soddisfare tutti i vincoli. Nel caso in cui non ci riuscisse inizia a rilasciare i vincoli partendo da quelli con priorità minore.
NOTA Per priorità maggiore si intende un numero in valore assoluto maggiore. Per cui la priorità 5 indica un vincolo per cui si è più interessati rispetto ad un vincolo a priorità 1 (che potrebbe rappresentare una richiesta non strettamente necessaria).
L'algoritmo permette inoltre di segnalare, per ogni assegnamento, a quale livello di priorità si è dovuti scendere per arrivare ad effettuare l'assegnamento.
I vincoli sono descritti di seguito:
- PRIO_FULL Vincolo che indica che un evento non può avere assegnati più eventi della sua capienza massima
- PRIO_ROAD Vincolo che richiede che un ragazzo effettui solo eventi appartenenti ad una delle sue strade di coraggio
- PRIO_ROAD_2 Vincolo che richiede che un ragazzo effettui solo eventi appartenenti ad almeno due delle sue strade di coraggio
- PRIO_ROAD_3 Vincolo che richiede che un ragazzo effettui solo eventi appartenenti a tutte e 3 le sue strade di coraggio
- PRIO_AGE Vincolo che impone che un ragazzo effettui solo eventi previsti per la sua eta
- PRIO_TWIN_LAB Vincolo che impone che un ragazzo non partecipi ad laboratorio dove ci sono già altri 3 membri del suo stesso gemellaggio
- PRIO_TWIN_TAV Vincolo che impone che un ragazzo non partecipi ad una tavola rotonda dove ci sono già altri 5 membri del suo stesso gemellaggio
- PRIO_NOVICE Vincolo che impone che un novizio non partecipi ad un evento non adatto a lui
- PRIO_HANDICAP Vincolo che impone che un portatore di handicap non partecipi ad un evento non adatto a lui
- PRIO_EQUALS Vincolo che impone che un ragazzo non partecipi ad 2 o più eventi che siano uguali
- PRIO_ONE_LAB Vincolo che impone che un ragazzo partecipi ad almeno un laboratorio nelle 3 occasioni
- PRIO_QUART Vincolo che impone che un ragazzo partecipi solamente a laboratori del proprio quartiere (sottocampo)
Il software LabAssign è scritto in Java. Le parti di codice che sono poco chiare sono state accuratamente documentate con commenti in italiano.
Prima di iniziare a sviluppare si consiglia di dare un'occhiata al JavaDoc