MHW2: quiz di personalità

In questo homework, dovrete creare un quiz di personalità. Ovvero:

Il codice HTML e CSS fornito contiene già buona parte della soluzione. Dovrete modificare i seguenti file per completare l’homework:

La consegna del MHW dovrà essere effettuata sul vostro repository GitHub e dovrà includere tutti i file necessari alla visualizzazione del sito.
Importante: i file devono essere caricati direttamente nella cartella principale del repository, non in un'unica sottocartella né in file compressi (es. zip). Inoltre, il nome del repository deve essere testualmente mhw2, non MHW2 o minihomework2 o qualunque altra cosa.

Aspetto e comportamento generale

L’utente deve poter cliccare su ciascun immagine e selezionarla come propria risposta. Cliccare su una risposta ad una domanda per cui è già stata selezionata la risposta deve comportare il deselezionamento della risposta precedente e la seleziona della nuova risposta. Quando tutte e tre le risposte sono selezionate, non deve poter essere più possibile modificarle. A quel punto, viene visualizzata la personalità dell’utente.

1. Griglia di scelta

Struttura della griglia

Risposta non selezionata

2. Layout mobile

Avrete bisogno di modificare il CSS e l’HTML per implementare il supporto alla vista da mobile

Note: non è necessario caricare la vostra pagina web sul telefono per testare il layout. Utilizzate il device mode di Chrome.

3. Funzionamento del quiz

Suggerimento: alcuni aspetti del quiz sono simili al comportamento dell’esempio sul tic-tac-toe.

Attributi data

Dovrete utilizzare gli attributi data associati alle possibili risposte (cioè, ai corrispondendi elementi HTML in index.html):

In Javascript, questi attributi saranno accessibili tramite:

Potete anche selezionare gli elementi HTML corrispondenti a certi valori degli attributi, come in questi esempi:


Selezionare una risposta

Quando l’utente clicca su una risposta, questa dovrebbe essere visualizzata nel seguente modo:

Modificare una risposta

Se l’utente non ha ancora completato il quiz (cioè, se almeno una risposta non è stata selezionata), deve poter modificare la propria risposta cliccando su un’altra immagine.

Dopo che l’utente ha risposto a tutte le domande, le risposte non devono poter essere più modificate, finchè l’utente non clicchi “Ricomincia il quiz” o aggiorni la pagina.

Completamento del quiz

Dopo che l’utente ha risposta a tutte le domande, il quiz è completo.

I risultati sulla personalità devono apparire in fondo alla pagina. Le informazioni da mostrare sono definite all’interno diconstants.js.

Di seguito, le specifiche di come il risultato deve essere visualizzato:

Risultato del quiz

Il valore di data-choice-id di ogni risposta è mappato ad uno dei possibili risultati definiti da RESULTS_MAP, all’interno di constants.js. Potete accedere a RESULTS_MAP da dentro script.js perchè constants.js è incluso prima di script.js in index.html.

Quando il quiz è completo, analizzate i valori di data-choice-id di ogni risposta. Ad esempio, se i valori sono blep, sleepy e blep, dovrete visualizzare il titolo e i contenuti della personalità descritta in RESULTS_MAP['blep'].

In caso di pareggio, cioè se l’utente sceglie valori unici per data-choice-id, come risultato del quiz viene utilizzata la risposta alla prima domanda. Ad esempio, se i valori selezionati sono, in ordine, burger, nerd e shy, dovrete visualizzare i titoli e i contenuti della personalità descritta in RESULTS_MAP['burger'].

Ricominciare il quiz

Se l’utente clicca sul pulsante “Ricomincia il quiz”, la pagina deve tornare allo stato iniziale: