Esqueleto inicial mobile-first basado en Next.js 15, Tailwind CSS y componentes estilo shadcn con paleta amarilla. El objetivo es contar con una PWA instalable en cualquier dispositivo antes de integrar autenticación, base de datos o Firebase.
npm run dev # arranca el servidor en modo desarrollo (http://localhost:3000)
npm run build # genera el build de producción con soporte PWA
npm run start # ejecuta el build en modo producción
npm run lint # valida el código con las reglas base de Next.js
npm run db:up # levanta Postgres local (docker compose)
npm run db:down # detiene el contenedor de Postgres
npm run db:drop # elimina todas las tablas usando DATABASE_URL_DIRECT
npm run prisma:migrate # aplica migraciones en la base definida en .env
npm run prisma:generate # regenera el cliente de Prisma tras cambios en el schema
npm run db:studio # abre Prisma Studio- Next.js 15 (App Router, TypeScript estricto).
- Tailwind CSS 3.4 + diseño inspirado en shadcn/ui con tokens amarillos.
- React Query inicializado (sin endpoints) para facilitar futuros datos remotos.
- NextAuth.js con Google OAuth y Prisma Adapter listo para usar credenciales reales.
- next-pwa con manifiesto, service worker y assets instalables.
- Componentes UI (
Button,Card,Badge,Tabs,Input,Textarea,Label) listos ensrc/components/ui. - Navegación mobile persistente para la app autenticada en
/(app).
/Landing marketing con CTA para instalación./installGuía rápida de instalación./(app)/dashboardResumen de reputación, turnos y últimos partidos./(app)/turnos+/(app)/turnos/nuevoListado y formulario de creación./(app)/rankingRanking individual y placeholder para parejas./(app)/matchFormulario de registro de partido./t/[id]Vista pública con datos mock del turno compartible.
- Copia
.env.examplea.envy ajusta laDATABASE_URLsi lo necesitas. - Levanta la base con
npm run db:up(usadocker composecon Postgres 16). - Ejecuta
npm run prisma:migrateonpm run db:pushpara crear las tablas de Auth (User,Account,Session,VerificationToken). Si necesitás limpiar la base por completo, definíDATABASE_URL_DIRECTen tu.envy correnpm run db:drop(usa la URL directa para evitar conflictos con Prisma Client). - Abre
npm run db:studiopara explorar datos.
El cliente se expone desde src/lib/prisma.ts para reutilizar la conexión dentro del proyecto.
- Conectar Prisma + Supabase para persistir turnos, partidos y ranking.
- Afinar naming del displayName de los usuarios y permitir edición desde la app.
- Activar Firebase Cloud Messaging utilizando el
firebase-messaging-sw.jsplaceholder. - Añadir testing (Playwright/Vitest) para flujos críticos y CI en Vercel.
La UI opera con datos mock definidos en
src/lib/mock-data.ts. Sustitúyelos gradualmente a medida que se integren los servicios reales.