Coffee Cash Register
Il registratore di cassa per bar, con magazzino e statistiche
Cosa fa
Software di cassa completo per caffetterie: vendite, magazzino e analisi in un unico programma.
Come guadagna
Il progetto è stato messo in vendita su SideProjectors a oltre 7.900 $. Come guadagna non è indicato pubblicamente.
Rendilo tuo
- In Italia la cassa deve inviare i corrispettivi all'Agenzia delle Entrate: meglio un gestionale di ordini e magazzino che lavora accanto alla cassa fiscale.
- Ordini al tavolo dal telefono del cameriere.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Banco Bar": un gestionale da banco per bar e caffetterie su tablet: ordini veloci, conti per tavolo, magazzino che si scala da solo, chiusura di cassa e statistiche. Per lo scontrino fiscale si collega al registratore telematico. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina iniziale con le funzioni e il prezzo
2. Schermata del banco: prodotti a piastrelle, conto in corso, pagamento
3. Tavoli e conti aperti
4. Magazzino: prodotti, ricette (es. un cappuccino usa caffè e latte), scorte minime
5. Chiusura di cassa e statistiche
Stile: veloce da usare in piedi: sfondo scuro #1C1917, piastrelle colorate per categoria (caffetteria marrone, bibite blu, food arancio), numeri grandi, carattere "Inter", tutto toccabile con un dito. Nessuna immagine generica di stock.
Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.
2. Database, account e sicurezza
Collega il progetto a Supabase e attiva la registrazione con email e password.
Crea queste tabelle:
- "prodotti": nome, categoria, prezzo, ricetta (ingredienti e quantità)
- "ingredienti": nome, unità, scorta, scorta minima
- "vendite" e "righe_vendita": prodotti venduti, totale, metodo di pagamento, operatore
Regole di sicurezza obbligatorie:
- ogni locale vede solo i suoi dati
- il magazzino si scala da solo a ogni vendita
- le vendite chiuse non si modificano: si fa uno storno
Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.
3. Banco veloce e magazzino automatico
La schermata del banco ha i prodotti a piastrelle per categoria: un tocco aggiunge al conto, tocco lungo per le varianti (decaffeinato, latte di soia). Conto al banco o per tavolo, divisione del conto, pagamento contanti o carta con il resto calcolato.
Ogni prodotto ha la sua ricetta: vendere un cappuccino scala 7 g di caffè e 120 ml di latte. Il magazzino si aggiorna da solo con un trigger (codice nei Dettagli tecnici) e avvisa quando un ingrediente scende sotto la scorta minima.
Fiscale: in Italia lo scontrino si emette con un registratore telematico (RT) o con la procedura web dell'Agenzia delle Entrate. Il software invia la vendita al registratore telematico compatibile tramite il suo protocollo, non lo sostituisce.
4. Chiusura e statistiche
Chiusura di cassa a fine giornata: incasso per metodo di pagamento, confronto con il contante contato, differenze in evidenza.
Statistiche: prodotti più venduti, fasce orarie di punta, incasso medio per scontrino, e consumi di ingredienti per ordinare la merce. Funziona anche se cade la connessione, e sincronizza dopo.
5. Pagamenti con Stripe
Aggiungi un abbonamento a 29 € al mese per locale. Gratis l'utente ha: 30 prodotti e niente magazzino. Con il piano Pro sblocca: prodotti illimitati, magazzino con ricette, tavoli, più operatori e statistiche.
A pagamento riuscito il webhook porta l'utente al piano Pro; se l'abbonamento viene disdetto o non rinnovato lo riporta al piano gratuito.
Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.
6. Controlli specifici di questo progetto
Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Magazzino: vendi 10 cappuccini e controlla che caffè e latte siano scesi esattamente di 70 g e 1,2 litri.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Magazzino che si scala da solo
Ogni riga di vendita scala gli ingredienti secondo la ricetta del prodotto; una vista mostra quelli sotto la scorta minima.
create table ingredienti (
id uuid primary key default gen_random_uuid(),
locale_id uuid not null,
nome text not null,
unita text not null check (unita in ('g', 'ml', 'pz')),
scorta numeric not null default 0,
scorta_minima numeric not null default 0
);
create table ricette (
prodotto_id uuid not null,
ingrediente_id uuid not null references ingredienti(id),
quantita numeric not null check (quantita > 0),
primary key (prodotto_id, ingrediente_id)
);
create table righe_vendita (
id bigint generated always as identity primary key,
vendita_id uuid not null,
prodotto_id uuid not null,
quantita int not null check (quantita > 0),
prezzo_centesimi int not null
);
create function scala_magazzino() returns trigger language plpgsql as $
begin
update ingredienti i
set scorta = i.scorta - r.quantita * new.quantita
from ricette r
where r.prodotto_id = new.prodotto_id and r.ingrediente_id = i.id;
return new;
end $;
create trigger vendita_scala_magazzino after insert on righe_vendita
for each row execute function scala_magazzino();
-- Da riordinare
create view da_riordinare as
select nome, scorta, scorta_minima, unita
from ingredienti
where scorta <= scorta_minima
order by scorta / nullif(scorta_minima, 0);
Pezzi comuni a tutti i progetti
Glossario
- Registratore telematico (RT)
- Il registratore di cassa che invia i corrispettivi all'Agenzia delle Entrate: per legge serve per gli scontrini.
- Storno
- L'annullamento di una vendita già registrata, con un nuovo movimento al contrario.