Pubblicazione¶
Questa sezione copre l'organizzazione del lavoro, i ruoli coinvolti e le opzioni per rendere gli scenari accessibili agli utenti finali.
Ruoli e responsabilità¶
In un contesto aziendale, due figure distinte interagiscono con ChoiceMap.
Utente finale¶
L'utente finale utilizza solo il Navigator per fruire degli scenari. Non ha accesso agli editor e non modifica i contenuti.
| Aspetto | Dettaglio |
|---|---|
| Usa | Solo choicemap.html |
| Accede a | Cartella di pubblicazione con file minimi |
| Competenze richieste | Nessuna, solo aprire un link nel browser |
| File visibili | Navigator + config + scenario + tema |
Amministratore¶
L'amministratore crea, modifica e pubblica gli scenari. Ha accesso completo a tutti gli strumenti.
| Aspetto | Dettaglio |
|---|---|
| Usa | Navigator + Scenario Editor + Theme Editor |
| Accede a | Repository di lavoro completo |
| Competenze richieste | Gestione file, comprensione della struttura |
| File gestiti | Tutti i file del progetto |
In contesti piccoli, la stessa persona può coprire entrambi i ruoli. In organizzazioni più grandi, i ruoli sono tipicamente separati.
Workflow dell'amministratore¶
Repository di lavoro¶
L'amministratore mantiene un repository locale (una cartella sul proprio computer o su un server) con tutti i file del progetto:
choicemap/
├── choicemap.html # Navigator
├── scenario-editor.html # Editor scenari
├── theme-editor.html # Editor temi
├── config.json # Configurazione
├── defaults.json # Valori predefiniti
├── shared-styles.css # Stili condivisi
├── scenari/ # Scenari in lavorazione
│ ├── onboarding-v1.json
│ ├── onboarding-v2.json
│ └── compliance-draft.json
├── temi/ # Temi personalizzati
│ └── tema-aziendale.json
└── risorse/ # Documenti allegati
├── manuale.pdf
└── checklist.docx
Ciclo di lavoro tipico¶
- Creare o modificare lo scenario usando
scenario-editor.html - Personalizzare il tema usando
theme-editor.html(se necessario) - Configurare
config.jsonper puntare allo scenario e tema corretti - Testare aprendo
choicemap.htmlnel browser - Iterare fino a raggiungere il risultato desiderato
- Pubblicare copiando solo i file necessari nella destinazione
Versionamento¶
È buona pratica mantenere versioni degli scenari:
- conservare le versioni precedenti (es.
scenario-v1.json,scenario-v2.json) - annotare le modifiche significative
- usare un sistema di controllo versione (Git) per progetti complessi
Preparare la pubblicazione¶
File necessari per l'utente finale¶
Per pubblicare uno scenario, servono solo questi file:
| File | Obbligatorio | Note |
|---|---|---|
choicemap.html |
Sì | Il Navigator |
config.json |
Sì | Punta a scenario e tema |
defaults.json |
Sì | Valori predefiniti |
| File JSON dello scenario | Sì | Es. scenario-onboarding.json |
| File JSON del tema | Solo se personalizzato | Es. tema-aziendale.json |
| Cartella risorse | Solo se usate | PDF, documenti, ecc. |
Non includere nella pubblicazione:
scenario-editor.html(non serve all'utente finale)theme-editor.html(non serve all'utente finale)shared-styles.css(usato solo dagli editor)- Scenari in bozza o versioni di test
- File di lavoro dell'amministratore
Configurare config.json¶
Prima di pubblicare, verificare che config.json punti ai file corretti:
{
"scenario": "scenario-onboarding.json",
"theme": "tema-aziendale.json",
"showCredits": false
}
L'opzione showCredits: false rimuove il footer con i crediti, per un aspetto più pulito.
Destinazioni di pubblicazione¶
Intranet aziendale¶
Per uso interno, copiare i file in una cartella condivisa sul file server aziendale.
\\server\condivisione\formazione\
├── choicemap.html
├── config.json
├── defaults.json
└── scenario-onboarding.json
Gli utenti accedono aprendo direttamente il file HTML o tramite un link sulla intranet.
File locali vs web server
Il Navigator funziona anche aperto direttamente come file locale, senza bisogno di un web server, purché tutti i file JSON siano nella stessa cartella.
Sito web pubblico¶
Per pubblicazione su web, caricare i file su qualsiasi hosting statico:
- GitHub Pages (gratuito)
- Netlify, Vercel (gratuiti con limitazioni)
- Amazon S3, Google Cloud Storage
- Hosting tradizionale
Non serve supporto per PHP, database o altri componenti server-side.
LMS aziendale¶
Per integrare in un Learning Management System:
- alcuni LMS supportano il caricamento di pacchetti HTML
- altri permettono embedding via iframe
- verificare le policy di sicurezza del LMS specifico
GitHub Pages¶
GitHub Pages è la soluzione più semplice per pubblicare su web gratuitamente.
Procedura¶
- Creare un repository su GitHub
- Caricare i file necessari (solo quelli per l'utente finale)
- In Settings → Pages, attivare la pubblicazione dal branch main
- Attendere il deploy (1-2 minuti)
URL risultante¶
https://nomeutente.github.io/nome-repository/choicemap.html
Esempio: se il repository è training-onboarding dell'utente azienda-xyz:
https://azienda-xyz.github.io/training-onboarding/choicemap.html
Aggiornamenti¶
Per aggiornare uno scenario pubblicato:
- Modificare i file localmente
- Caricare le nuove versioni su GitHub
- Attendere il rebuild automatico
Se le modifiche non appaiono subito, forzare il refresh (Ctrl+Shift+R) o attendere qualche minuto per il caching.
Gestire scenari multipli¶
Un'organizzazione può avere diversi scenari: onboarding, compliance, formazione tecnica.
Opzione 1: cartelle separate¶
Ogni scenario ha la propria cartella con tutti i file necessari:
formazione/
├── onboarding/
│ ├── choicemap.html
│ ├── config.json
│ ├── defaults.json
│ └── scenario-onboarding.json
├── compliance/
│ ├── choicemap.html
│ ├── config.json
│ ├── defaults.json
│ └── scenario-compliance.json
Vantaggi: ogni scenario è indipendente, facile da gestire e aggiornare separatamente.
URL distinti:
- .../formazione/onboarding/choicemap.html
- .../formazione/compliance/choicemap.html
Opzione 2: installazione condivisa¶
Un'unica installazione del Navigator, scenari multipli selezionabili:
formazione/
├── choicemap.html
├── defaults.json
├── config-onboarding.json
├── config-compliance.json
├── scenario-onboarding.json
└── scenario-compliance.json
Richiede di rinominare il config appropriato in config.json per cambiare scenario, oppure modificare il Navigator per accettare un parametro URL (personalizzazione avanzata).
Embedding in altri siti¶
Il Navigator può essere incorporato in pagine esistenti tramite iframe.
Codice base¶
<iframe
src="https://tuodominio.com/choicemap.html"
width="100%"
height="600"
frameborder="0">
</iframe>
Versione responsive¶
<div style="position: relative; width: 100%; height: 100vh;">
<iframe
src="https://tuodominio.com/choicemap.html"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;"
frameborder="0"
allowfullscreen>
</iframe>
</div>
Considerazioni¶
- Verificare eventuali restrizioni CORS se Navigator e pagina sono su domini diversi
- I link esterni si aprono nell'iframe a meno di
target="_blank" - La navigazione da tastiera può comportarsi diversamente dentro un iframe
Sicurezza e accesso¶
ChoiceMap non ha autenticazione integrata. Chiunque abbia l'URL può accedere.
Per limitare l'accesso:
- Repository privato su GitHub (richiede account Pro per GitHub Pages)
- Hosting su server aziendale dietro VPN
- Autenticazione a livello di web server (basic auth, SSO aziendale)
- URL non indicizzato (sicurezza tramite oscurità, non consigliato per contenuti sensibili)
Per scenari con informazioni riservate, valutare attentamente l'infrastruttura e le policy aziendali.