Closed PorfirioTramontana closed 4 months ago
Per poter effettuare questo aggiornamento, ho dovuto spostare il volume degli esperimenti dal frontend all'exercise_service, siccome non è permesso manipolare i dati sul volume direttamente dal client. Per quanto riguarda il file json di configurazione di un esperimento, ho aggiunto l'attributo tipo per differenziare gli esperimenti in collaborativo e competitivo, ed ho aggiunto un attributo consegnato, per gli studenti, di tipo boolean. In questo modo:
Esperimento collaborativo: Quando lo studente termina l'esperimento, consegnato diventa true e la sua soluzione viene pubblicata nel Solution Repository, infine viene reinderizzato alla home. Fino alla scadenza, l'utente potrà aprire nuovamente l'esperimento. Inoltre, nel momento in cui consegnato viene settato a true, il bottone per accedere al Solution Repository sarà accessibile e lo studente avrà la possibilità di vedere le soluzioni all'interno della pagina dell'esperimento.
Esperimento competitivo: Alla consegna dell'esperimento il flag consegnato diventa true e lo studente viene reinderizzato alla home. Una volta che il flag viene settato a true, lo studente non potrà più accedere all'esperimento.
Bisogna aggiungere un'ulteriore informazione nel file di configurazione dell'esperimento che distingua tra:
esperimento collaborativo: dopo il submit e prima della scadenza del tempo è possibile visionare le soluzioni degli altri (semplicemente non devono essere fatti cambiamenti nel file di configurazione dell'esperimento). Quindi nel caso collaborativo deve ritornare il pulsante di accesso alla Leaderboard.
esperimento competitivo: dopo il submit non è più possibile modificare la soluzione. L'utente deve scomparire dal file di configurazione ma è preferibile che ci sia un flag consegnato che diventa true