Caccia al Tesoro NFC (Nuxt + Prisma)
Applicazione Nuxt 3 per una caccia al tesoro a tappe con tag NFC.
Frontend costruito con primitive Radix UI per Vue (radix-vue).
Funzionalita
- Registrazione giocatore con alias anonimo.
- Stato tappe in cookie (
kt_tag_state) e su DB. - Ogni tappa ha un UUID (dato unico nel link NFC).
- Pagina scansione:
/scan/<uuid>. - Dashboard giocatore con:
- tappe passate / non passate,
- inserimento risposta quando richiesta,
- classifica con alias anonimi.
- Area admin (
/admin) protetta da password per:- creare e modificare tappe,
- impostare domanda/risposta corretta,
- vedere progressi dei giocatori.
Setup
- Installa dipendenze:
npm install- Avvia PostgreSQL locale (opzionale con Docker):
docker compose up -d-
Crea
.envda.env.examplee imposta almenoADMIN_PASSWORD. -
Genera DB e client Prisma:
npm run prisma:migrate -- --name init- (Opzionale) Dati di esempio:
npm run prisma:seed- Avvio sviluppo:
npm run devFlusso NFC consigliato
- Scrivi nel tag NFC un URL del tipo:
https://tuo-dominio.it/scan/<uuid>. - In alternativa usa Web NFC dalla dashboard giocatore (compatibilita browser limitata).
Database
- Prisma usa PostgreSQL (
provider = "postgresql"). - Connection string esempio:
postgresql://postgres:postgres@localhost:5432/treasure_hunt?schema=public.
API principali
POST /api/playercrea giocatore anonimo.PATCH /api/player/:idaggiorna alias.GET /api/state?playerId=...stato giocatore + classifica.POST /api/scanregistra scansione tag.POST /api/answerverifica risposta tappa.POST /api/admin/loginlogin admin.GET /api/admin/tags,POST /api/admin/tags,PATCH /api/admin/tags/:idgestione tappe.GET /api/admin/playersriepilogo giocatori.
On this page
Languages
Vue49.0%TypeScript36.8%CSS14.1%
Contributors
Created February 20, 2026
Updated February 22, 2026