← Tutte le idee Studio e formazione

LearnForge

L'AI trasforma qualsiasi argomento in un percorso di studio

Cosa fa

Piattaforma di apprendimento: lo studente sceglie un argomento e l'AI crea un percorso con lezioni ed esercizi.

Come guadagna

Il progetto è stato messo in vendita su SideProjectors a circa 15.000 $. Come guadagna non è indicato pubblicamente.

Rendilo tuo

  • Per adulti che vogliono imparare una competenza per il lavoro: Excel, inglese per il lavoro, contabilità di base.
  • Quiz e ripasso a intervalli per ricordare davvero.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Corso per Me": lo studente sceglie un argomento e il suo livello, e l'AI crea un percorso su misura con lezioni brevi, esempi ed esercizi corretti, che si adatta a come vanno i quiz. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con esempi di corsi e prezzi
2. Registrazione e accesso
3. Nuovo corso: argomento, livello, obiettivo, tempo al giorno
4. Il corso: moduli e lezioni con avanzamento
5. Lezione con spiegazione, esempi, quiz e domande all'AI

Stile: da quaderno digitale: sfondo bianco, blu #2563EB, verde #16A34A per le lezioni completate, carattere "Inter" e "Lora" per il testo delle lezioni, colonna di lettura stretta. 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:
- "corsi": argomento, livello, obiettivo, programma in JSON (moduli e lezioni), collegati all'utente
- "lezioni": testo generato, quiz, risultato del quiz, completata

Regole di sicurezza obbligatorie:
- ogni utente vede solo i suoi corsi e lezioni
- i crediti non si modificano 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. Programma e lezioni generate

Nel nuovo corso l'utente indica argomento, livello, obiettivo ("superare l'esame di statistica", "usare Excel al lavoro") e minuti al giorno. La Edge Function "programma" (un credito) chiede a Claude un programma in JSON: 4–8 moduli con 3–6 lezioni ciascuno, ognuna con titolo e obiettivo.

Ogni lezione si genera quando si apre (un credito ogni 5 lezioni): spiegazione di 5–10 minuti di lettura, esempi concreti, un riepilogo e 5 domande di quiz con spiegazione delle risposte.

Se il quiz va male (meno di 3 su 5), la lezione successiva ripassa i concetti sbagliati; se va benissimo, accelera. Avviso: "I contenuti sono generati dall'AI: per esami e lavoro verifica sempre le fonti ufficiali".

4. Domande e progressi

In ogni lezione si possono fare domande all'AI su quella lezione ("non ho capito l'esempio 2"), che risponde rimanendo sull'argomento.

Progressi: lezioni completate, media dei quiz per modulo, serie di giorni. Certificato di completamento scaricabile, con la nota che non ha valore legale.

5. Pagamenti con Stripe

Aggiungi pacchetti di crediti: 10 crediti a 9 €, 40 crediti a 29 €. Ogni nuovo utente riceve 3 crediti gratis. Un credito per ogni programma di corso e uno ogni 5 lezioni generate. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.

A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.

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. Qualità: crea 3 corsi su argomenti che conosci bene e controlla con attenzione che le lezioni non contengano errori.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Corsi e adattamento ai quiz

I corsi con il programma in JSON e le lezioni; la query trova i concetti dei quiz andati male da ripassare nella lezione successiva.

create table corsi (
  id uuid primary key default gen_random_uuid(),
  utente_id uuid not null references auth.users(id) on delete cascade,
  argomento text not null,
  livello text not null,
  obiettivo text not null,
  programma jsonb not null,           -- { moduli: [{ titolo, lezioni: [{ titolo, obiettivo }] }] }
  creato_il timestamptz not null default now()
);

create table lezioni (
  id uuid primary key default gen_random_uuid(),
  corso_id uuid not null references corsi(id) on delete cascade,
  utente_id uuid not null references auth.users(id) on delete cascade,
  modulo int not null,
  numero int not null,
  testo text,
  quiz jsonb,                         -- [{ domanda, opzioni, giusta, concetto }]
  risposte jsonb,                     -- risposte date dallo studente
  punteggio int,
  unique (corso_id, modulo, numero)
);

alter table corsi enable row level security;
create policy "le mie righe" on corsi
  for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);

alter table lezioni enable row level security;
create policy "le mie righe" on lezioni
  for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);

-- Concetti sbagliati nell'ultima lezione completata, da passare all'AI per il ripasso
select q ->> 'concetto' as concetto
from lezioni l, jsonb_array_elements(l.quiz) with ordinality as d(q, n)
where l.corso_id = 'ID-CORSO' and l.punteggio is not null
  and (l.risposte ->> (n - 1)::int) is distinct from (q ->> 'giusta')
  and (l.modulo, l.numero) = (
    select modulo, numero from lezioni
    where corso_id = 'ID-CORSO' and punteggio is not null
    order by modulo desc, numero desc limit 1);

Istruzioni per l'AI: lezione

Le istruzioni fisse che la Edge Function "lezione" 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 paziente e preciso. Scrivi una lezione in italiano sull'obiettivo indicato, al livello indicato, leggibile in 5-10 minuti: spiegazione chiara, 2 esempi concreti, riepilogo in 3 punti. Se ricevi concetti da ripassare, riprendili all'inizio. Poi 5 domande di quiz a scelta multipla con la spiegazione della risposta. Se non sei sicuro di un dato, non inventarlo. Rispondi solo con JSON: {"testo": "markdown", "quiz": [{"domanda", "opzioni": [4], "giusta": indice, "spiegazione", "concetto"}]}.

Pezzi comuni a tutti i progetti

Glossario

JSONB
Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.