French Ready
Impara a parlare francese con conversazioni pratiche
Cosa fa
App per allenare la conversazione in francese con situazioni pratiche, invece che con la grammatica.
Come guadagna
Startup appena presentata su BetaList, che non dichiara incassi. Idee nostre per guadagnare con un progetto simile: abbonamento mensile.
Rendilo tuo
- L'italiano per stranieri, con situazioni della vita in Italia.
- L'inglese per un mestiere preciso: camerieri, receptionist, guide turistiche.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Francese al Volo": allena gli italiani a parlare francese in situazioni pratiche (al ristorante, in hotel, al lavoro, dal medico) con conversazioni simulate a voce con un'AI, e correzioni gentili alla fine. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina iniziale con le situazioni e il prezzo
2. Registrazione e livello (principiante, intermedio, avanzato)
3. Scelta della situazione e del ruolo dell'AI (cameriere, receptionist, collega)
4. Conversazione a voce o scritta, con aiuti se ti blocchi
5. Correzioni e parole nuove da ripassare
Stile: elegante e allegro: sfondo bianco, blu Francia #1E3A8A, rosso #DC2626 solo per i dettagli, carattere "Inter", fumetti della conversazione 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:
- "conversazioni": situazione, livello, messaggi, correzioni, data, collegate all'utente
- "parole": parole nuove incontrate, traduzione, esempio, prossimo ripasso
Regole di sicurezza obbligatorie:
- ogni utente vede solo le sue conversazioni e parole
- l'audio della voce non si conserva
- 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. Conversazioni in situazioni vere
L'utente sceglie una situazione (es. "prenoti un tavolo al telefono e chiedi di spostarlo") e il livello. Claude interpreta il personaggio, in francese adatto al livello, e porta avanti la scena con un obiettivo concreto. L'utente risponde scrivendo o parlando (riconoscimento vocale in francese del browser); le risposte dell'AI si ascoltano con la sintesi vocale.
Pulsante "Aiutami": suggerisce in italiano cosa potresti dire e una frase francese da usare.
Alla fine la Edge Function "correggi" restituisce in JSON gli errori principali con la frase corretta e la spiegazione in italiano, e le parole nuove (codice nei Dettagli tecnici).
4. Correzioni e ripasso
Le parole e le espressioni nuove finiscono nelle carte da ripassare con la ripetizione dilazionata. Le correzioni restano nello storico, raggruppate per tipo di errore (articoli, verbi, pronuncia).
Situazioni nuove ogni mese e un "esame di realtà" a fine livello: una conversazione più lunga con un voto.
5. Pagamenti con Stripe
Aggiungi un abbonamento a 7,99 € al mese. Gratis l'utente ha: 3 conversazioni a settimana. Con il piano Pro sblocca: conversazioni illimitate, tutte le situazioni, ripasso delle parole e storico delle correzioni.
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. Livello: fai una conversazione da principiante: l'AI deve usare frasi brevi e lessico semplice, e passare all'italiano solo negli aiuti.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Istruzioni per l'AI: correggi
Le istruzioni fisse che la Edge Function "correggi" dà a Claude, che risponde in JSON. 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 insegnante di francese per italiani. Ricevi una conversazione in francese tra un personaggio e lo studente, con il livello dello studente. Individua i 3-6 errori più importanti dello studente (grammatica, lessico, registro), con la frase originale, quella corretta e una spiegazione breve in italiano. Elenca 5-10 parole o espressioni utili emerse, con traduzione italiana ed esempio. Sii incoraggiante. Rispondi solo con JSON: {"errori": [{"originale", "corretta", "spiegazione", "tipo"}], "parole": [{"francese", "italiano", "esempio"}], "commento": "una frase di incoraggiamento"}.Errori per tipo e parole da ripassare
Le correzioni raggruppate per tipo di errore nelle ultime 4 settimane, e le parole da ripassare oggi.
create table conversazioni (
id uuid primary key default gen_random_uuid(),
utente_id uuid not null references auth.users(id) on delete cascade,
situazione text not null,
livello text not null,
messaggi jsonb not null default '[]',
correzioni jsonb,
fatta_il timestamptz not null default now()
);
create table parole (
id uuid primary key default gen_random_uuid(),
utente_id uuid not null references auth.users(id) on delete cascade,
francese text not null,
italiano text not null,
esempio text,
prossimo_ripasso date not null default current_date,
unique (utente_id, francese)
);
alter table conversazioni enable row level security;
create policy "le mie righe" on conversazioni
for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);
alter table parole enable row level security;
create policy "le mie righe" on parole
for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);
-- Errori più frequenti per tipo
select e ->> 'tipo' as tipo, count(*) as volte
from conversazioni c, jsonb_array_elements(c.correzioni -> 'errori') e
where c.utente_id = auth.uid() and c.fatta_il > now() - interval '28 days'
group by 1 order by volte desc;
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.
- Gioco di ruolo
- L'AI interpreta un personaggio (un cameriere, un collega) per simulare una conversazione vera.