GymCoach
근력 트레이닝 기록 및 개인 AI 코치
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web app installabile per la spesa, la dispensa e le ricette mediterranee, calibrate sui tuoi obiettivi.
index.html app
config.js collegamento a Supabase (vuoto = solo sul telefono)
css/app.css stile
js/data/foods.js alimenti generici con valori nutrizionali e allergeni
js/data/recipes.js ricettario iniziale
js/core.js calcoli: nutrizione, allergeni, dispensa, obiettivi
js/cloud.js account e sincronizzazione Supabase
js/scanner.js scanner e Open Food Facts
js/expiry.js lettura della data dalla foto e notifiche
js/views.js, app.js schermate e azioni
supabase/schema.sql database
scripts/ aggiornamento settimanale delle ricette
.github/workflows/ esecuzione automatica ogni lunedì
Nessun passaggio di build: sono file statici.
nutrimi) e carica tutto il contenuto della cartella, comprese le cartelle nascoste .github.A questo punto l'app funziona già, con i dati salvati solo su quel telefono.
supabase/schema.sql e premi Run.config.js. Il Project URL lo trovi nel pulsante Connect in alto nel progetto. La chiave è in Project Settings → API Keys: usa la anon public della scheda Legacy API Keys oppure la Publishable key (sb_publishable_…). Poi carica la modifica su GitHub e Vercel ripubblica da solo.Per default Supabase chiede di confermare l'email alla registrazione. Puoi lasciarlo così o disattivarlo in Authentication → Providers → Email.
Lo script legge dalle pagine delle ricette solo i dati strutturati (titolo, porzioni, tempo, ingredienti e dosi). Il procedimento non viene copiato: l'app mostra il link alla pagina originale. Rispetta il file robots.txt dei siti e aspetta 3 secondi tra una pagina e l'altra.
scripts/recipe-sources.json aggiungi i siti da cui importare. Per ogni sito servono la sitemap delle ricette (di solito è indicata in https://sito/robots.txt alla riga Sitemap:) e un pezzo di indirizzo che distingue le pagine di ricetta (match). Metti "enabled": true. In alternativa elenca a mano gli indirizzi in urls.node scripts/sync-recipes.mjs --dry --url https://indirizzo-di-una-ricettaSUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY (Supabase → Project Settings → API Keys: la Secret key sb_secret_… oppure la legacy service_role. Questa chiave non va mai in config.js).Vengono importate solo ricette di cui Nutrimi riconosce almeno il 75% degli ingredienti, così i valori nutrizionali sono affidabili. Dolci, bevande e conserve sono esclusi. GitHub sospende le esecuzioni programmate se il repository resta senza modifiche per 60 giorni: basta riattivarle da Actions.
Senza account online l'avviso compare quando apri l'app. Con l'account online arriva alle 9:00 anche ad app chiusa, a tutti quelli di casa che hanno attivato le notifiche in Profilo → Notifiche scadenze.
Su iPhone le notifiche funzionano solo con l'app aggiunta alla schermata Home (iOS 16.4 o successivo) e aperta da lì.
npx web-push generate-vapid-keys. Ottieni una Public Key e una Private Key.config.js, alla voce vapidPublicKey, e carica la modifica su GitHub.VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY e VAPID_SUBJECT (scrivi mailto: seguito dalla tua email). SUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY sono gli stessi della sezione 3.supabase/schema.sql nel SQL Editor: aggiunge le tabelle delle notifiche.Lo script parte ogni mattina e invia una sola notifica per casa, raggruppando i prodotti che scadono entro 3 giorni. Ogni prodotto viene segnalato una volta. Gli orari di GitHub possono slittare di qualche minuto.
La data dalla foto si legge con il riconoscimento del testo direttamente sul telefono (serve connessione la prima volta). Se trova più date, per esempio produzione e scadenza, ti fa scegliere. Controlla sempre la data proposta.