v1.0.0

Documentazione Tecnica

Benvenuto nella documentazione tecnica ufficiale del Progetto E015. Questo portale fornisce una panoramica completa del sistema di gestione eventi, descrivendo l'architettura, le interfacce API e i protocolli di sicurezza implementati.

Il progetto è concepito come una piattaforma robusta e scalabile per la pubblicazione di contenuti multimediali legati a eventi territoriali, garantendo integrità dei dati e performance elevate.

Funzionalità Principali

  • Gestione Eventi (CRUD): Interfaccia amministrativa completa per la creazione e modifica di eventi con metadati avanzati.
  • Supporto Multimediale: Sistema di upload sicuro con validazione Magic Byte e integrazione video/YouTube.
  • Public Data API: Endpoint RESTful per la distribuzione dei contenuti a client di terze parti.

Tecnologie Utilizzate

L'ecosistema tecnologico è stato selezionato per garantire compatibilità, sicurezza e facilità di deployment.

  • Backend: PHP 8.2 (Engine core)
  • Database: MySQL / MariaDB
  • Ambiente: Docker (Apache based)

Architettura Generale

L'applicazione segue un modello di separazione delle responsabilità tra logica di gestione (Pannello) e logica di distribuzione (API).

Struttura del Sistema Documentazione della gerarchia principale:
  • /pannello: Contiene la logica amministrativa e le classi di gestione dati.
  • /api: Espone gli endpoint pubblici filtrabili.
  • /uploads: Storage ottimizzato per i contenuti multimediali validati.

Flusso di Funzionamento

Il flusso standard prevede l'acquisizione del dato tramite form validati lato server, la memorizzazione relazionale e la successiva esposizione tramite buffer JSON.

[Input Admin] -> [Validazione PHP] -> [Database MySQL] -> [Controller API] -> [Output JSON]

Documentazione API

L'API è accessibile in sola lettura e supporta parametri di ricerca per ottimizzare il recupero dei dati.

Endpoint Eventi

Restituisce la lista degli eventi filtrati per criteri temporali o geografici.

GET /api/example-endpoint?date=YYYY-MM-DD&city=NOME

Esempio di Risposta (Astratto)

{
  "status": "success",
  "data": [
    {
      "id": "UUID",
      "title": "Esempio Evento",
      "location": "Sito Placeholder",
      "media": ["url_asset_1", "url_asset_2"]
    }
  ]
}

Linee Guida di Utilizzo

Per integrare correttamente il sistema, si raccomanda di gestire i timeout di rete e di utilizzare header corretti per l'acquisizione dei dati in formato JSON.

Misure di Sicurezza

La sicurezza è integrata in ogni livello del software, seguendo i principi di Defense in Depth.

  • Prepared Statements: Utilizzo sistematico di PDO per prevenire attacchi SQL Injection.
  • Session Hardening: Cookie configurati con flag HttpOnly, Secure e SameSite=Lax.
  • Validazione Multimediale: Controllo dei Magic Byte per verificare l'integrità reale dei file caricati, indipendentemente dall'estensione.
  • Output Sanitization: Encoding contestuale di tutti i dati renderizzati per prevenire XSS.