Specifiche Tecniche dell’Applicazione
Architettura generale
- Framework: ASP.NET Core MVC con Razor Views
- Linguaggio: C# (server-side) + HTML5, CSS3, JavaScript
- Stile e layout: Bootstrap 5 e FontAwesome
- Pattern architetturale: MVC + Entity Framework Core
- Distribuzione: ambiente Production su hosting Windows (SmarterASP.NET)
Motore di Database
- DBMS: Microsoft SQL Server 2022
- Accesso ai dati: Entity Framework Core
- Mapping: Fluent API tramite classe
ModelConfiguration - Precisione date: datetime2(7) per coerenza e tracciabilità
- Relazioni: configurate con chiavi esterne e comportamenti di cancellazione espliciti
Struttura del Database
Il database è organizzato in modo modulare tramite quattro schemi logici, ciascuno dedicato a un ambito funzionale distinto.
- acn – gestione utenti, contatti e recapiti
- ptm – tassonomia dei percorsi tematici (Aree, Categorie, Materie, Temi)
- qtm – gestione delle domande e risposte dei quiz
- tlg – log delle sessioni quiz e dei dettagli delle risposte
Schema acn – Account
- Utenti: anagrafica completa, credenziali, stato, dati di accesso
- Contatti: email, telefoni, social, note
- Recapiti: indirizzi fisici e informazioni geografiche
Schema ptm – Percorsi Tematici
- Aree: macro-sezioni tematiche
- Categorie: suddivisioni interne alle aree
- Materie: argomenti specifici
- Temi: unità didattiche o concettuali
Schema qtm – Quiz Tematici
- Domande: testo, livello, tema di appartenenza
- Risposte: opzioni multiple con indicazione della risposta corretta
Schema tlg – Log delle attività
- LogQuiz: sessioni quiz, punteggi, tempi, preferenze
- LogQuizDettaglio: risposte date, tempi, punteggi per singola domanda
Configurazioni applicative
- Connessione al database: stringa configurata in
appsettings.json - Invio email: SMTP autenticato tramite dominio personalizzato
- Ambienti: Development e Production con viste condizionali
Obiettivi progettuali
- Struttura modulare e facilmente estendibile
- Codice chiaro, documentato e manutenibile
- Separazione rigorosa tra livelli (UI, logica, dati)
- Ottimizzazione delle relazioni e degli indici per prestazioni elevate
Questa applicazione è stata progettata con attenzione alla chiarezza architetturale,
alla coerenza dei dati e alla massima manutenibilità nel tempo.