Web app responsive para buscar, guardar y reseñar videojuegos.
Producción: https://fichin.vercel.app
- Catálogo de videojuegos (seed local + opción de importar desde IGDB).
- Registro e inicio de sesión con email/contraseña.
- Dashboard con búsqueda, filtros y paginación.
- Biblioteca personal con estados
WISHLISTyPLAYED. - Reseñas editables con puntaje de
1a100. - Perfiles públicos de usuario (
/users/[username]). - Sistema de follow entre usuarios.
- Feed social con reseñas de usuarios seguidos (
/feed). - Upload de foto de perfil desde dispositivo (JPEG/PNG, max 4096px).
- Soporte PWA (instalable + fallback offline básico).
- APIs protegidas y validadas con
zod. - Suite de tests unitarios y E2E.
Next.js 16(App Router)TypeScriptPrisma+PostgreSQLNextAuth(credentials + JWT session)Tailwind CSSVitest+Playwright
src/app: páginas App Router y route handlers (/api/*)src/components: componentes de layout/UI/formulariossrc/lib: auth, prisma, validaciones, sanitización, rate limitingprisma: schema, seed y dataset fallbacktests/e2e: flujos end-to-enddocs: documentación técnica detallada
npm installCopiar .env.example a .env y ajustar valores.
DATABASE_URL="postgresql://<usuario>@localhost:5432/fichin"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="<secret-largo-aleatorio>"
IGDB_CLIENT_ID=""
IGDB_CLIENT_SECRET=""
BLOB_READ_WRITE_TOKEN=""createdb -h localhost fichin
npm run db:pushnpm run db:seednpm run devAbrir http://localhost:3000.
npm run dev: servidor de desarrollonpm run build: build de producciónnpm run start: servir build de producciónnpm run lint: lintnpm run test: tests unitarios (Vitest)npm run test:e2e: tests E2E (Playwright)npm run db:generate: genera Prisma Clientnpm run db:push: sincroniza schema con DBnpm run db:migrate: migraciones de desarrollonpm run db:seed: carga catálogo inicial
Implementado y verificado:
- Lint: OK
- Unit tests: OK
- E2E tests: OK
- Build: OK
- Social features: OK (
follow/profile/feed)
prisma.seedenpackage.jsonfunciona actualmente, pero Prisma indica deprecación haciaprisma.config.tsen versiones futuras.- Sin
IGDB_CLIENT_IDyIGDB_CLIENT_SECRET, el seed usaprisma/data/famous-games.json.