48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
# Webapp iniziale
|
|
|
|
Questa cartella contiene il primo scheletro della futura UI web in Next.js.
|
|
|
|
## Obiettivo
|
|
|
|
Preparare una base chiara da discutere riga per riga, prima ancora di collegarla davvero al backend Python.
|
|
|
|
## Idee guida
|
|
|
|
- `app/page.tsx`
|
|
- redirect iniziale alla lingua di default
|
|
- `app/[locale]/page.tsx`
|
|
- homepage localizzata
|
|
- `app/[locale]/new/page.tsx`
|
|
- pagina localizzata di configurazione del cruciverba
|
|
- `app/[locale]/crosswords/[id]/page.tsx`
|
|
- pagina localizzata di gioco del cruciverba
|
|
- `components/`
|
|
- pezzi UI riusabili
|
|
- `lib/types.ts`
|
|
- tipi TypeScript coerenti col contratto JSON
|
|
- `lib/i18n.ts`
|
|
- dizionari e gestione locale `it/en/es`
|
|
- `lib/mock-crossword.ts`
|
|
- mock locale della response JSON
|
|
|
|
## Stato attuale
|
|
|
|
- il form non chiama ancora il backend reale
|
|
- la pagina di gioco usa un mock locale
|
|
- la struttura però è già pensata per ricevere il JSON del motore
|
|
- il frontend è già predisposto per `it`, `en`, `es`
|
|
|
|
## Prossimo passo previsto
|
|
|
|
Sostituire il mock locale con:
|
|
|
|
- `POST /crosswords/generate`
|
|
- `GET /crosswords/{id}`
|
|
|
|
e poi introdurre:
|
|
|
|
- polling dello stato
|
|
- PDF giocatore/soluzione
|
|
- salvataggio partite
|
|
- UI mobile raffinata
|