尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
🏦 BabyBanking — La Banca di Casa App online per gestire il "libretto di risparmio" di Arturo, Santiago e Sofia: tre salvadanai separati, depositi e prelievi, con lo storico completo di ogni movimento (data + descrizione). Gira su Vercel (ospita le pagine e la logica dell'app) e Supabase (il database dove sono salvati conti e movimenti) — entrambi gratuiti per un uso come questo.查看完整 README ↗
App online per gestire il "libretto di risparmio" di Arturo, Santiago e Sofia: tre salvadanai separati, depositi e prelievi, con lo storico completo di ogni movimento (data + descrizione). Gira su Vercel (ospita le pagine e la logica dell'app) e Supabase (il database dove sono salvati conti e movimenti) — entrambi gratuiti per un uso come questo.
Password di partenza (cambiale subito dopo il primo deploy, vedi sotto):
12342026public/ — le pagine che vedono Arturo, Santiago e Sofia (HTML/CSS/JS, le
stesse di sempre, nessuna build richiesta).api/ + src/ — la logica del server (login, depositi, prelievi,
statistiche): su Vercel diventa automaticamente una funzione "serverless"
che gira solo quando serve.supabase/schema.sql — la struttura del database da creare una volta sola
su Supabase.babybanking), una password
per il database (salvala da parte, ma non ti servirà nell'uso quotidiano)
e una regione vicina a te (es. Frankfurt/EU). Piano Free.supabase/schema.sql di questo progetto, copia tutto il
contenuto, incollalo nell'editor e clicca Run. Questo crea le tabelle
per conti, movimenti e password, e inserisce i tre conti (Arturo,
Santiago, Sofia) con le password di partenza già pronte.https://xxxxx.supabase.co).anon/public!). È una chiave segreta con
accesso completo al database: non condividerla né pubblicarla mai,
andrà solo nelle variabili d'ambiente di Vercel (passo 3).Se il progetto è già su GitHub (come questo repository) puoi saltare questo passo. Altrimenti crea un repository su github.com e caricaci questo codice.
Vai su vercel.com e crea un account gratuito collegandoti con GitHub (così Vercel vede subito i tuoi repository).
Clicca Add New → Project, e scegli il repository di BabyBanking dalla lista.
Nella schermata di configurazione, apri Environment Variables e
aggiungi queste tre variabili (i valori di SUPABASE_URL e
SUPABASE_SERVICE_ROLE_KEY sono quelli copiati al Passo 1):
| Nome | Valore |
|---|---|
SUPABASE_URL | il Project URL di Supabase |
SUPABASE_SERVICE_ROLE_KEY | la chiave service_role di Supabase |
SESSION_SECRET | una stringa lunga e casuale (vedi sotto) |
Per generare SESSION_SECRET, apri un terminale (su Mac: app
"Terminale") e lancia:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
e incolla il risultato come valore. Se non hai Node.js a portata di mano, va bene anche una password lunga e casuale generata da un gestore di password: l'importante è che sia lunga (almeno 32 caratteri) e che tu non la condivida.
Clicca Deploy. Dopo un minuto circa Vercel ti darà un indirizzo tipo
https://babybanking-tuonome.vercel.app: è l'app, online, raggiungibile
da qualunque dispositivo connesso a internet (non solo a casa).
Non appena l'app è online, cambia subito le password di default. Il modo più semplice è farlo in locale (una volta), collegandoti allo stesso database:
.env.example in un
nuovo file chiamato .env.local e incolla gli stessi valori di
SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY e SESSION_SECRET usati su
Vercel.npm install
npm run set-pins
Da quel momento le nuove password valgono subito sull'app online, senza bisogno di un nuovo deploy.
L'app, se usata raramente, rischia due cose: Supabase mette in pausa i progetti gratuiti dopo 7 giorni senza richieste al database, e in generale è sempre meglio avere una copia di sicurezza dello storico a parte. Per questo l'app include due controlli automatici (due "Cron Job" di Vercel):
Per attivarli servono 4 nuove variabili d'ambiente su Vercel:
Genera una "Password per le app" di Google (serve per far inviare email al server a nome tuo, senza usare la password normale del tuo account):
abcd efgh ijkl mnop,
va bene anche con gli spazi)Su Vercel → Settings → Environment Variables, aggiungi:
| Nome | Valore |
|---|---|
CRON_SECRET | una stringa lunga e casuale (generala come hai fatto per SESSION_SECRET) |
GMAIL_USER | il tuo indirizzo Gmail |
GMAIL_APP_PASSWORD | il codice di 16 caratteri generato al punto 1 |
BACKUP_EMAIL_TO | l'indirizzo a cui vuoi ricevere il backup (può essere lo stesso di GMAIL_USER) |
Rifai il deploy (Vercel → Deployments → tre puntini sull'ultimo deploy → Redeploy) perché le nuove variabili vengano applicate.
Per controllare che funzioni: Vercel → scheda Cron Jobs del progetto mostra i due job programmati e, dopo che sono scattati almeno una volta, l'esito dell'ultima esecuzione. Puoi anche forzarne uno subito cliccandoci sopra invece di aspettare l'orario programmato.
Se preferisci non usare Gmail, puoi comunque esportare manualmente lo storico in qualsiasi momento da Supabase (vedi "Dati salvati" più sotto).
Con .env.local configurato come sopra (Passo 4.1), puoi lanciare l'app sul
tuo computer collegata allo stesso database di Supabase:
npm install
npm start
L'app parte su http://localhost:3000. Ogni modifica fatta in locale (un
deposito di prova, ecc.) è vera e visibile anche sull'app online, perché
condividono lo stesso database: usa questa modalità solo per test rapidi, o
crea un secondo progetto Supabase "di prova" se vuoi sperimentare senza
toccare i dati veri.
Basta fare push delle modifiche sul branch collegato a Vercel (di solito
main): Vercel rifà automaticamente il deploy in un minuto o due, senza
altri passaggi.
Conti e movimenti vivono nel database Supabase (non più in un file locale). Se hai configurato il Passo 5, ricevi già ogni domenica un CSV di backup via email. In più, Supabase fa backup automatici sul piano gratuito, e in qualsiasi momento puoi anche esportare le tabelle a mano da Table Editor → menu dei tre puntini → Export data in formato CSV.
api/index.js -> punto di ingresso per Vercel (funzione serverless)
server.js -> avvio del server in locale, per sviluppo/test
src/app.js -> app Express condivisa da locale e Vercel
src/store.js -> lettura/scrittura dati su Supabase
src/session.js -> login "senza server acceso 24/7" (cookie firmato)
src/routes.js -> API usate dal frontend
src/routes-cron.js -> endpoint dei due Cron Job (ping giornaliero, backup settimanale)
src/mailer.js -> invio dell'email di backup via Gmail
src/csv.js -> genera il file CSV dello storico transazioni
public/ -> interfaccia grafica (HTML/CSS/JS)
supabase/schema.sql -> struttura del database da eseguire su Supabase
scripts/set-pins.js -> script da riga di comando per cambiare le password
vercel.json -> configurazione del deploy e dei Cron Job su Vercel