Ottiene il json di configurazione con i dati di navigazione. Es:
{
stage: 'dev',
register: {
page: '/content/register.html',
endpoint: '/user'
},
navigation: [
{
label: 'sponsor',
icon: 'icon-sponsor.png',
url: '/content/sponsor.html'
},
...
]
}
Aggiunge un utente a database, su aspetta un json nel seguente formato
{
uuid: "uuid-device",
... [altri dati]
}
Lista di round che popoleremo durante l'evento
Informazioni specifiche di un round comprese di players (con rispettive url di jpeg layout generato), url_layout_originale, start e end time esempio record JSON
{
id: 'ROUND_ID',
name: 'ROUND_NAME',
layout_url: 'http://S3_preview_url',
players: [
{
id: 'PLAYER_ID',
name: 'PLAYER_NAME',
preview_url: 'http://S3_preview_url'
},
...
],
start: TIMESTAMP in millisecondi,
end: TIMESTAMP in millisecondi,
vote_start: TIMESTAMP,
vote_end: TIMESTAMP
}
Endpoint per effettuare il voto. Come content della richiesta possiamo mettere tutti i metadati possibili e immaginabili riguardo il device/accunt del votante
Endpoint per i risultati delle votazioni. Tornerà un array ordinato dei players
[{
id: 'PLAYER_ID',
name: 'PLAYER_NAME',
votes: NUM_VOTES,
preview_url: 'http://S3_preview_url'
}]
Socket in broadcast per il timing dei round
Message format
{
type: 'MESSAGE_TYPE'
data: 'MESSAGE_PAYLOAD'
}
{
type: 'EVENT_COUNTDOWN'
data: {missing: '', time: 0}
}
{
type: 'ROUND_COUNTDOWN'
data: {round: _id, missing: '', time: 0}
}
{
type: 'ROUND_END_COUNTDOWN'
data: {round: _id, missing: '', time: 0, countdownStep: 1}
}
countdown step è un contatore da 65 a 0 necessario per il loading delle immagini su app
{
type: 'VOTE_COUNTDOWN',
data: {round: _id, missing: '', time: 0}
}
{
type: 'RECEIVING_RESULTS',
data: {round: _id}
}
{
type: 'SHOWING_RESULTS',
data: {
round: _id
}
}
{
type: 'WAITING',
data: {
round: _id
}
}
docker run --name citd_mongo -p 27017:27017 \
-v ${PWD}/mongo_data:/etc/mongo \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
mongo
docker build -t citd/api .
docker run --network host -d citd/api