Heimiva
Pasti, compiti, calendario e spesa della famiglia in un'unica app
Cosa fa
App per organizzare la vita di famiglia: menu della settimana, lista della spesa condivisa, compiti da dividere e calendario comune, con un aiuto dall'AI. Nata in tedesco e inglese.
Come guadagna
Il progetto è stato messo in vendita su SideProjectors a circa 4.500 $. Come guadagna non è indicato pubblicamente.
Rendilo tuo
- In italiano, con le ricette italiane e la lista della spesa divisa per reparto del supermercato.
- Per famiglie separate: calendario dei figli condiviso tra i due genitori.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Casa Nostra": organizza la vita di famiglia in un posto solo: menù della settimana con lista della spesa, faccende divise a turno tra tutti, e calendario comune, con l'aiuto dell'AI per i menù. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina iniziale con le funzioni e il prezzo
2. Creazione della famiglia e invito dei membri
3. Menù della settimana con le ricette e la lista della spesa che si genera da sola
4. Faccende: chi fa cosa questa settimana, con turni a rotazione
5. Calendario comune
Stile: caldo e allegro: sfondo bianco, un colore per ogni membro della famiglia, verde #16A34A per le faccende fatte, carattere "Nunito" arrotondato, icone grandi. 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:
- "famiglie" e "membri": la famiglia e i suoi membri, anche bambini senza account
- "menu": pasti della settimana con ricetta e ingredienti
- "spesa": voci della lista, fatte o no
- "faccende": nome, frequenza, peso (quanto è faticosa), a chi tocca questa settimana
Regole di sicurezza obbligatorie:
- ogni famiglia vede solo i suoi dati
- si entra in una famiglia solo con un invito
- il piano non si modifica dal browser
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. Menù e lista della spesa
Nel menù della settimana si scelgono i pasti a mano o si chiede all'AI ("settimana veloce, vegetariano il martedì, niente pesce per il piccolo"): la Edge Function "menu" restituisce 14 pasti in JSON con gli ingredienti, rispettando preferenze, allergie e tempo disponibile.
La lista della spesa si genera da sola sommando gli ingredienti di tutti i pasti, divisa per reparto, ed è condivisa in tempo reale: chi è al supermercato spunta, gli altri vedono.
Avanzi: il sito propone di riusare gli ingredienti avanzati nei pasti successivi.
4. Faccende a turno e calendario
Le faccende (lavastoviglie, spazzatura, bagno, spesa) si dividono a rotazione ogni settimana tenendo conto di quanto è faticosa ciascuna, così il carico è equo (codice nei Dettagli tecnici). I bambini hanno faccende adatte all'età e un tabellone con le stelline.
Calendario comune con un colore per persona, eventi ricorrenti (calcetto il martedì) e promemoria.
5. Pagamenti con Stripe
Aggiungi un abbonamento a 3,99 € al mese per famiglia. Gratis l'utente ha: lista della spesa e 3 faccende. Con il piano Pro sblocca: menù con l'AI, faccende illimitate a rotazione, calendario e tabellone dei bambini.
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. Equità: con 4 membri e 8 faccende di peso diverso, simula 4 settimane: il peso totale per persona deve essere quasi uguale.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Faccende divise in modo equo
Assegna le faccende della settimana partendo dalle più faticose e dando ognuna a chi finora ha accumulato meno peso: in poche settimane il carico si pareggia.
type Faccenda = { nome: string; peso: number; etaMinima: number };
type Membro = { nome: string; eta: number; pesoAccumulato: number };
export function assegnaSettimana(faccende: Faccenda[], membri: Membro[]) {
const carico = new Map(membri.map((m) => [m.nome, m.pesoAccumulato]));
const assegnate: { faccenda: string; a: string }[] = [];
for (const f of [...faccende].sort((a, b) => b.peso - a.peso)) {
const possibili = membri.filter((m) => m.eta >= f.etaMinima);
if (!possibili.length) continue;
// A chi ha meno carico finora
const scelto = possibili.reduce((min, m) => (carico.get(m.nome)! < carico.get(min.nome)! ? m : min));
carico.set(scelto.nome, carico.get(scelto.nome)! + f.peso);
assegnate.push({ faccenda: f.nome, a: scelto.nome });
}
return { assegnate, nuovoCarico: Object.fromEntries(carico) }; // il carico si salva per la settimana dopo
}Istruzioni per l'AI: menu
La Edge Function che propone il menù. Con l'abbonamento, al posto dei crediti si controlla il piano della famiglia. Il resto della funzione (accesso, crediti, rimborso se l'AI rifiuta) è uguale per tutti i progetti: è nella guida "Chiamare l'AI dal server".
Sei un cuoco di casa italiano. Crea il menù di una settimana (pranzo e cena, 14 pasti) per la famiglia descritta, rispettando preferenze, allergie (mai usare ingredienti che le contengono) e tempo disponibile. Riusa gli ingredienti tra i pasti per ridurre gli sprechi. Rispondi solo con JSON: {"pasti": [{"giorno": 1-7, "pasto": "pranzo"|"cena", "piatto", "minuti", "ingredienti": [{"nome", "quantita", "unita", "reparto"}]}]}.
Pezzi comuni a tutti i progetti
- Pagamenti con Stripe
- Profili, piano e crediti
- Chiamare l'AI dal server
- Controllo finale prima di pubblicare
Glossario
- JSONB
- Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.
- Realtime
- Una funzione di Supabase che aggiorna la pagina da sola quando cambia un dato.