Nautilus Web App — Analisi Tecnica
Architettura, stack tecnologico, moduli e specifiche di sistema della piattaforma gestionale per Enti Locali
Scheda applicazione
| Attributo | Valore |
|---|---|
| Nome applicazione | Nautilus |
| Tipo | Web Application — accessibile da qualsiasi browser |
| Destinatari | Enti Locali italiani (Comuni, Province, Unioni di Comuni) |
| Moduli disponibili | 9 moduli specializzati per la gestione del patrimonio urbano |
| Architettura | Monolitica modulare con database relazionale centralizzato |
| Accesso | Multi-utente con gestione ruoli e permessi |
| Conformità | PNRR digitalizzazione PA, GDPR, Codice della Strada |
| Deploy | Hosting condiviso o VPS con Apache/Nginx + PHP + MySQL |
Tecnologie utilizzate
Specifiche per modulo
Ogni modulo implementa le stesse funzionalità trasversali (CRUD completo, mappe GPS, statistiche, export, fotografie) specializzandole per la propria area di competenza.
🚨 Segnaletica Verticale
Tipologia, codice CDS, ubicazione GPS, stato conservazione, scadenza manutenzione, foto
🛣 Segnaletica Orizzontale
Tipo marcatura, materiale, stato, superficie, data installazione, georeferenziazione
📣 Impianti Pubblicitari
Tipologia impianto, concessionario, autorizzazione, scadenza, canone, QR code, zona
🚗 Passi Carrabili
Intestatario, indirizzo, Art. 22 CDS, dimensioni, autorizzazione, rinnovo annuale
💡 Illuminazione Pubblica
Tipo lampione, potenza, fornitore energia, cabina elettrica, guasti, manutenzione
🎒 Arredo Urbano
Categoria, materiale, anno installazione, stato, interventi manutentivi, posizione
🔧 Sottoservizi
Tipo rete, gestore, profondità , materiale, anno posa, autorizzazione scavo
📡 Impianti Tecnologici
Tipo impianto, marca, fornitore, IP/seriale, scadenza garanzia, manutenzione
🌿 Verde Urbano
Specie botanica, altezza, diametro chioma, data censimento, potatura, rischi
CRUD completo Mappe GPS Leaflet Dashboard statistiche Upload fotografico Export CSV/JSON/XML/XLS Gestione scadenze Filtri avanzati Ricerca AI Log operazioni
Pattern e struttura applicativa
| Componente | Implementazione |
|---|---|
| Connessione DB | Pattern Singleton — una sola istanza PDO per richiesta, con gestione eccezioni |
| Sessioni | Sessioni PHP native con timeout automatico, rigenerazione ID anti-hijacking |
| Autenticazione | Hash password bcrypt, controllo ruolo per ogni endpoint, redirect su accesso non autorizzato |
| Struttura file | Cartella /app per i moduli, /shared per componenti comuni, /admin per pannello amministrativo |
| Template engine | PHP nativo con include modulari. Header, footer e menu condivisi tra tutti i moduli |
| Validazione input | Sanificazione lato server con htmlspecialchars, prepared statements PDO per tutte le query |
| Upload file | Validazione MIME type, limite dimensione, rinomina hash SHA-1, cartella dedicata per modulo |
| Logging | Sistema di log centralizzato: ogni operazione CRUD tracciata con user, timestamp e IP |
Assistente AI integrato
Nautilus integra un assistente AI multi-provider che si collega direttamente al database e alla normativa vigente per rispondere a domande in linguaggio naturale.
| Provider AI | Modello | Uso principale |
|---|---|---|
| Google Gemini | gemini-pro / gemini-1.5 | Analisi immagini, ricerca semantica, consulenza normativa |
| OpenAI | GPT-4o / GPT-3.5-turbo | Risposta a domande, generazione report, classificazione |
| Groq | llama3-70b / mixtral | Risposte veloci, elaborazione in tempo reale |
Geolocalizzazione e cartografia
| Funzionalità | Dettaglio tecnico |
|---|---|
| Libreria mappe | Leaflet.js 1.9.x con tile OpenStreetMap (gratuito, nessuna API key) |
| Marker personalizzati | Icone SVG per ogni tipologia di elemento. Clustering automatico con Leaflet.markercluster |
| Filtri geografici | Filtro per via, zona, tipologia e stato direttamente sulla mappa |
| Coordinate GPS | Lettura EXIF dalle foto caricate. Inserimento manuale lat/lng. Ricerca per indirizzo con geocoding |
| Popup informativi | Click su marker apre scheda riepilogativa con link alla scheda completa |
| Export mappa | Esportazione lista filtrata con coordinate per import in GIS esterni |
Formati di esportazione dati
| Formato | Libreria PHP | Uso tipico |
|---|---|---|
| CSV | PHP nativo (fputcsv) | Fogli di calcolo, analisi tabellari, import in altri sistemi |
| JSON | PHP nativo (json_encode) | API REST, integrazione con applicazioni web e mobile |
| XML | SimpleXML / DOMDocument | Interscambio dati con sistemi istituzionali e PA |
| XLS/XLSX | PhpSpreadsheet / PHPExcel | Report Excel per rendicontazioni e presentazioni istituzionali |
🕐 Ogni esportazione viene registrata nel log con: utente, data, ora, modulo e numero di record esportati. È possibile schedulare esportazioni automatiche a frequenza configurabile.
Misure di sicurezza implementate
Autenticazione sicura
Password con hash bcrypt. Nessuna password in chiaro. Blocco accesso dopo tentativi falliti.
Protezione XSS
Sanificazione completa di tutti gli input con htmlspecialchars(). Nessun output raw da database.
Protezione CSRF
Token CSRF su tutti i form. Verifica token lato server ad ogni submit. Token con scadenza di sessione.
Prepared Statements
Tutte le query al database usano PDO con prepared statements. Nessuna SQL Injection possibile.
Header di sicurezza
X-Content-Type-Options, X-Frame-Options (anti-clickjacking), Referrer-Policy, CSP configurabile.
Audit trail completo
Ogni operazione CRUD viene registrata con: utente, IP, timestamp, azione eseguita e dati modificati.
Requisiti per l'installazione
| Componente | Minimo | Raccomandato |
|---|---|---|
| PHP | 7.4 | 8.1 o superiore |
| MySQL / MariaDB | 5.7 / 10.3 | 8.0 / 10.6 |
| Web server | Apache 2.4 | Nginx 1.20 o Apache 2.4 |
| RAM server | 512 MB | 2 GB o più |
| Spazio disco | 500 MB | 5 GB (per fotografie) |
| Estensioni PHP | PDO, PDO_MySQL, GD, mbstring, json, curl, zip | |
| Browser client | Qualsiasi browser moderno (Chrome, Firefox, Safari, Edge). No IE. | |
| Compatibilità hosting | Register.it, Aruba, OVH, SiteGround e qualsiasi hosting condiviso con PHP+MySQL | |
🔔 Note per l'installazione su hosting condiviso
- Creare il database MySQL tramite pannello cPanel o Plesk
- Caricare i file via FTP nella cartella public_html o in una sottocartella
- Configurare il file config.php con credenziali database e chiavi API
- Eseguire il file SQL di installazione per creare le tabelle
- Impostare i permessi 755 per le cartelle uploads/
Vuoi sapere di più su Nautilus?
Prova la demo live o contattaci per un preventivo personalizzato per il tuo ente.
▶ Prova la Demo 🌐 A cosa serve 📧 Contattaci