Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Meezy — Easy Menu

Questo repository contiene la documentazione architetturale e le specifiche tecniche del progetto. Il codice sorgente è in un repo privato per motivi commerciali.

Cos'è

Meezy è una piattaforma SaaS multi-tenant per digitalizzare la gestione dei ristoranti: menu dinamici, monitoraggio tavoli, comande in tempo reale e report sulle vendite.

Le due parti più particolari del progetto sono il monitor di sala (KDS), costruito con un'architettura event-driven per tenere basso il carico sul server, e un modulo che usa l'AI per estrarre automaticamente un menu da un PDF cartaceo.

Moduli

Area clienti (/clienti)

Il cliente accede scansionando un QR code legato al tavolo, con token dinamico e sessione condivisa. Il carrello è sincronizzato in tempo reale tra tutti quelli seduti allo stesso tavolo. Da qui si inviano le comande in cucina, si chiama il cameriere e si può dividere il conto piatto per piatto.

Area ristoratore / KDS (/ristoranti)

Il monitor di sala mostra comande e chiamate in tempo reale. Il gestore può costruire il menu (categorie, allergeni, prezzi, variazioni) e riordinarlo trascinando gli elementi. C'è un parser AI che legge un PDF del menu cartaceo e lo trasforma in dati strutturati usando le API di Google Gemini. I tavoli hanno tre stati (libero / occupato / chiuso) con QR generati automaticamente, e c'è una sezione di analytics con incassi, ordini e i piatti più venduti. Anche logo, copertina e colori del tema sono personalizzabili per ogni ristorante.

Amministrazione (/admin)

Gestione dei tenant: registrazione e provisioning dei ristoranti affiliati.

Stack

Livello Tecnologia Note
Backend PHP 8 Procedurale, mysqli con prepared statement
Database MySQL/MariaDB InnoDB, con vincoli, indici e trigger
Realtime Server-Sent Events Basato su tabella di stato + trigger DB, niente WebSocket
Frontend HTML/CSS/JS vanilla CSS custom properties per i temi dinamici
AI Google Gemini API Parsing dei PDF menu
QR Endroid QR Code 5.0 Via Composer
Server Apache .htaccess per rewrite e sicurezza

Come funziona il realtime

Invece di usare i WebSocket, la comunicazione tra cucina e tavoli passa da SSE combinati con trigger MySQL:

Cliente invia comanda → scrittura su DB → trigger MySQL
                                              │
                                              ▼
Monitor di sala (KDS) ← endpoint SSE ← tabella sse_stato

Ogni volta che qualcosa cambia (nuovo ordine, stato tavolo, chiamata cameriere) un trigger incrementa un contatore di versione nella tabella sse_stato. L'endpoint SSE controlla quel contatore e manda dati al client solo quando è effettivamente cambiato qualcosa, invece di fare polling continuo.

Sicurezza

  • Prepared statement ovunque, niente query concatenate a mano
  • Token CSRF su form e chiamate AJAX, controllo dell'header Origin
  • Rate limiting sui login: blocco dopo 5 tentativi falliti in 15 minuti per IP
  • Cookie di sessione con HttpOnly e SameSite=Strict, rigenerazione periodica dell'ID
  • .htaccess blocca l'accesso diretto a file sensibili (.env, db.php, composer.json) e disabilita il directory listing
  • Controlli su estensione e dimensione per gli upload

Struttura

restaurantsaas/
├── admin/            # amministrazione e registrazione tenant
├── backend/          # handler di sistema e utility
├── clienti/          # app web per l'ordinazione
│   └── backend/      # endpoint AJAX per carrello condiviso e SSE
├── css/              # design system e temi dinamici
├── includes/         # helper (CSRF, cookie, toast, branding)
├── ristoranti/       # dashboard gestore e KDS
│   ├── backend/      # endpoint AJAX, generatore QR, engine SSE
│   └── testAI/       # ingestion PDF con Google Gemini
├── schema_update.sql # tabelle, vincoli, indici e trigger
└── index.php         # landing page

SCREENSHOTS

Screenshot 2026-08-19 150331 Screenshot 2026-08-19 150509 Screenshot 2026-08-19 150424 Screenshot 2026-08-19 150717

About

Meezy - Easy Menu

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors