Architettura, moduli e ruoli

Questa pagina riassume l'architettura applicativa di Omniscol e i ruoli visibili lato scuola. Gli impegni contrattuali precisi (disponibilità, backup, conservazione, monitoraggio) sono definiti nei documenti giuridici o commerciali approvati.

Hosting e affidabilità

Omniscol è ospitato nell'Unione europea, più precisamente su AWS Parigi e Scaleway Parigi. Il prodotto utilizza meccanismi di backup, di monitoraggio e di isolamento logico tra gli account degli istituti; i dettagli applicabili a un account dipendono dal contratto e dall'ambiente interessato.

Vedere FAQ — Sicurezza e hosting per il dettaglio lato utente.

Architettura software

  • Applicazione web: l'applicazione si carica una sola volta, poi le schermate vengono generate dinamicamente con scambi REST/JSON (Single Page Application).
  • CouchDB come database principale.
  • Redis come database per la sincronizzazione lato applicazione e i log.
  • TypeScript per l'interfaccia (webapp).
  • Backend Node.js / Express che orchestra gli engine interni (api, webapp, portal, panel, ical, mcp, oauth2, ecc.).
  • C++ per l'algoritmo di generazione, eseguito su VM dedicate avviate su richiesta.

Sicurezza

  • HTTPS per le comunicazioni esposte.
  • Cloudflare come unico punto di ingresso (protezione anti-DDOS).
  • Password pre-cifrate lato client con scrypt, poi ricifrate e salate lato server. Non vengono memorizzate né trasmesse in chiaro.
  • Autenticazione JWT con chiavi di firma e durata di vita breve; una rotazione o revoca di chiave può invalidare i token firmati.
  • Link di condivisione firmati, con scadenza, legati all'account che li ha generati e invalidabili con la modifica della password o la disattivazione di tale account.
  • Token API con chiave radice e token derivati, scope di endpoint e scadenze.
  • OIDC / SSO disponibile in base al contratto e alla configurazione dell'account.
  • Esportazione e backup interni JSON per la reversibilità dei dati.

Ruoli utente

Omniscol distingue diversi ruoli lato scuola:

Ruolo Uso tipico
Amministratore Responsabili della pianificazione, direzione, servizio IT
Professore Professori, docenti esterni, formatori
Studente Studenti, alunni, corsisti
Personale Vita scolastica, coordinatori educativi, assistenti educativi, sorveglianti se il Servizio del personale è attivo
Link di condivisione Accesso tramite URL firmato a un perimetro preciso

La corrispondenza tra queste etichette e gli identificativi tecnici dei ruoli è descritta in Utenti e ruoli.

Uno stesso utente può cumulare più ruoli. Per esempio, un professore che partecipa alla pianificazione può essere allo stesso tempo Professore e Amministratore.

Il ruolo Link di condivisione non corrisponde a un account utente classico. Si tratta di link firmati: i link web dell'orario sono in sola lettura, mentre alcuni link mirati possono autorizzare un'azione limitata, come l'inserimento delle disponibilità di un professore fino a una data di scadenza.

Esistono inoltre ruoli interni riservati ai team di Omniscol: amministrazione della piattaforma, traduzione, attività commerciali e partner rivenditori. Alcuni di questi account sono autorizzati a connettersi agli account delle scuole, per motivi di manutenzione. Intervengono allora come superamministratori della scuola, con più possibilità di un amministratore: importazione di dati grezzi nel database, attivazione o disattivazione di opzioni a pagamento, connessione a nome di un utente. Questi accessi generano avvisi di connessione visibili e i relativi token scadono molto rapidamente. Da grandi poteri derivano grandi responsabilità.

Ruoli personalizzati: restringa in modo granulare i diritti di alcuni account amministratore senza aprire tutti i diritti globali.

Ruoli personalizzati

L'opzione Ruoli personalizzati consente di restringere i diritti di un account amministratore modulo per modulo e operazione per operazione. Serve a delegare una parte dell'amministrazione senza concedere tutti i diritti globali.

Moduli

I moduli visibili in un account standard:

  • Home (home) — pagina d'ingresso e sintesi della giornata.
  • Orario (schedules) — consultazione e modifiche puntuali.
  • Dashboard (dashboard) — statistiche di occupazione e di servizio.
  • Gestione delle assenze (absences) — dichiarazioni e sostituzioni.
  • Gestione degli orari (timetables) — costruzione, generazione e pubblicazione degli orari.
  • Amministrazione (admin) — utenti, parametri, importazione / esportazione e integrazioni.

In base al contratto, possono comparire altri moduli, in particolare Servizio del personale per la pianificazione delle attività di vita scolastica e di sorveglianza.

Multi-scuola

Ogni scuola è isolata logicamente lato server e accede al proprio dominio. I dati di una scuola non sono visibili alle altre scuole dall'applicazione. Su richiesta, è però possibile attivare un canale di comunicazione tra gli account distinti, per condividere i conflitti di occupazione delle aule e dei professori. È molto utile nel contesto di edifici condivisi, o per un gruppo di scuole che condividono risorse.

See also