> For the complete documentation index, see [llms.txt](https://sponta.gitbook.io/orario/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sponta.gitbook.io/orario/funzioni-e-dettagli-tecnici/funzioni.md).

# Funzioni dell'applicazione

Le funzioni di Orario seguono il lavoro della scuola: configurare i dati, verificare la fattibilità, costruire la bozza e approvarla. Questa mappa collega ciascuna attività al codice e alle API; il [catalogo HTTP](/orario/funzioni-e-dettagli-tecnici/api-endpoint.md) distingue i permessi effettivi.

## Configurare la scuola

| Area           | Funzioni                                                                                 | Implementazione                         |
| -------------- | ---------------------------------------------------------------------------------------- | --------------------------------------- |
| Organizzazione | Plessi, distanze, aule, capienze e residenze delle classi                                | `src/routes/school.js`                  |
| Calendario     | Calendario di istituto, ereditarietà dei plessi, anteprima degli effetti di una modifica | `src/services/calendarService.js`       |
| Insegnamenti   | Materie, docenti, cattedre e proposta/conferma delle assegnazioni                        | `src/routes/school.js`                  |
| Classi         | Classi ordinarie, pluriclassi, articolazioni, profili e relativa anteprima               | `src/routes/school.js`                  |
| Blocchi        | Compatibilità, configurazione e limiti per classe                                        | `src/routes/curriculumConfiguration.js` |
| Vincoli        | Catalogo, requisiti mattutini, non adiacenza dei docenti e vincoli configurabili         | `src/routes/constraints.js`             |

Le anteprime permettono di valutare una modifica prima di confermarla. Una proposta di cattedra non equivale ancora a un'assegnazione confermata utilizzabile dal generatore. Per le differenze tra classi e gruppi, vedere [Il dominio scolastico](/orario/comprendere-orario/dominio.md).

## Lavorare sulla bozza

La griglia dispone di inserimento, modifica, eliminazione e blocco delle lezioni. L'allocazione assistita individua attività e destinazioni; gli scambi spostano lezioni già presenti. Sostegno e lezioni hanno endpoint distinti.

Il registro delle modifiche, undo e redo accompagnano il lavoro manuale. Le versioni salvate permettono di conservare e ripristinare uno stato. Una versione salvata non è automaticamente quella esposta ai lettori del portale pubblico.

La generazione asincrona permette di avviare un lavoro, consultarne l'avanzamento, richiedere pausa o annullamento, aggiungere minuti o ore alla fase attiva e gestire la bozza o il risultato. Il flusso e le condizioni di conservazione sono spiegati in [Come nasce un orario](/orario/comprendere-orario/flusso-orario.md). Le rotte sono raccolte in `src/routes/timetable.js`.

## Verificare e approvare

**Verifica dati e vincoli** separa la compatibilità della configurazione dai problemi delle lezioni collocate. Con bozza vuota non vengono segnalate come violazioni le ore ancora da inserire; la dashboard segue lo stesso criterio, conservando le segnalazioni indipendenti sui dati. La [guida alla verifica](/orario/comprendere-orario/verifica.md) chiarisce anche il limite dei controlli preventivi rispetto all'impossibilità rilevata dal risolutore.

La verifica di approvazione controlla copertura del curricolo, cattedre, profili di classe e conflitti rigidi. Restituisce anche gli avvisi e le impronte dei dati: la successiva approvazione deve riferirsi allo stato verificato.

L'approvazione crea il riferimento alla fotografia consultabile dagli utenti autenticati. Il ritiro interrompe quella consultazione. Pubblicare questa guida su GitBook è un'operazione distinta dall'approvare l'orario della scuola.

## Importazione, diagnosi e amministrazione

| Area            | Comportamento                                                                                            |
| --------------- | -------------------------------------------------------------------------------------------------------- |
| Excel           | Esportazione dei dati e della guida al workbook; importazione separata in anteprima e conferma           |
| Diagnosi AI     | Avvio e consultazione della diagnosi, annullamento e applicazione dei suggerimenti attraverso il backend |
| Utenti          | Login, logout, cambio e recupero password; gestione degli utenti riservata agli amministratori           |
| Amministrazione | Svuotamento applicativo riservato agli amministratori: operazione che modifica i dati                    |

Queste funzioni sono documentate nel codice rispettivamente in `src/routes/workbook.js`, `ai.js` e `auth.js`. L'esistenza di un endpoint AI non garantisce che un provider sia configurato nell'istanza installata.

## Accesso, caricamento e svuotamento

All'apertura, un orologio animato accompagna il recupero della sessione e dei dati. Il modulo di login compare quando è necessario accedere. In caso di errore durante il caricamento, **Riprova** ripete l'avvio mantenendo il token. Le icone di attesa sono disponibili nelle dimensioni 80 e 24 pixel.

**Svuota orario**, nella Zona di pericolo, elimina lezioni e sostegno della griglia e aggiorna la schermata mantenendo la sessione. Anagrafiche, vincoli e versioni restano presenti. Se il successivo aggiornamento della schermata fallisce, il messaggio conferma lo svuotamento e invita a usare **Ricarica dati**.

Il **ripristino completo** dei dati è un'altra operazione e continua a invalidare le sessioni. Anche scadenza della sessione e riavvio del server richiedono un nuovo accesso: le credenziali ricordate dal browser non rendono persistente la sessione del server.

## Dove continuare

La [guida alle funzioni interne](/orario/funzioni-e-dettagli-tecnici/funzioni-interne.md) approfondisce i servizi che collegano queste attività. Per integrare un client esterno, partire da [API e integrazioni](/orario/funzioni-e-dettagli-tecnici/api.md).

Fonte: [route del backend al commit 3bf5b58](https://github.com/lsponta/orario/tree/3bf5b58/src/routes). I collegamenti al repository privato richiedono accesso GitHub.
