Actualiza la documentación para reflejar el cambio de Express a Fastify en el backend y ajusta las notas de la PoC en lecciones aprendidas.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
## Plan: Gestor de biblioteca de videojuegos y ROMs (Quasar)
|
||||
|
||||
Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos físicos/digitales. Permite escanear directorios de ROMs, enriquecer metadatos vía APIs públicas (IGDB, RAWG, TheGamesDB), y registrar manualmente juegos físicos/digitales con precio, condición y notas. Stack: TypeScript + React + Vite + shadcn/ui (frontend), Node.js + Express + SQLite (backend).
|
||||
Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos físicos/digitales. Permite escanear directorios de ROMs, enriquecer metadatos vía APIs públicas (IGDB, RAWG, TheGamesDB), y registrar manualmente juegos físicos/digitales con precio, condición y notas. Stack: TypeScript + React + Vite + shadcn/ui (frontend), Node.js + Fastify + TypeScript + Prisma + SQLite (backend).
|
||||
|
||||
**Fases: 9**
|
||||
|
||||
@@ -22,7 +22,7 @@ Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos
|
||||
|
||||
### **Fase 2: Requisitos y diseño técnico**
|
||||
|
||||
- **Objetivo:** Definir arquitectura (monorepo o separado), estructura de carpetas, stack definitivo (Express/Fastify, Prisma/TypeORM, SQLite), APIs a integrar (IGDB, RAWG, TheGamesDB), y documento de modelo de datos inicial.
|
||||
- **Objetivo:** Definir arquitectura (monorepo o separado), estructura de carpetas, stack definitivo (Fastify + Prisma, SQLite), APIs a integrar (IGDB, RAWG, TheGamesDB), y documento de modelo de datos inicial.
|
||||
- **Archivos/Funciones a crear/modificar:**
|
||||
- `docs/requirements.md` — requisitos funcionales y no funcionales
|
||||
- `docs/architecture.md` — decisiones arquitectónicas (monorepo vs multi-repo, API REST structure)
|
||||
@@ -37,11 +37,11 @@ Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos
|
||||
|
||||
### **Fase 3: Backend base y modelo de datos**
|
||||
|
||||
- **Objetivo:** Configurar backend (Express + TypeScript + Prisma + SQLite), definir schema de BD (Game, RomFile, Platform, Purchase, Artwork), migraciones y seeders básicos.
|
||||
- **Objetivo:** Configurar backend (Fastify + TypeScript + Prisma + SQLite), definir schema de BD (Game, RomFile, Platform, Purchase, Artwork), migraciones y seeders básicos.
|
||||
- **Archivos/Funciones a crear/modificar:**
|
||||
- `backend/package.json` — dependencias (express, prisma, cors, dotenv, etc.)
|
||||
- `backend/package.json` — dependencias (fastify, prisma, @fastify/cors, dotenv, etc.)
|
||||
- `backend/tsconfig.json` — configuración TypeScript backend
|
||||
- `backend/src/index.ts` — servidor Express inicial
|
||||
- `backend/src/index.ts` — servidor Fastify inicial
|
||||
- `backend/prisma/schema.prisma` — modelos (Game, RomFile, Platform, Purchase, Artwork)
|
||||
- `backend/prisma/migrations/` — migraciones Prisma
|
||||
- `backend/src/routes/healthcheck.ts` — endpoint `/api/health`
|
||||
@@ -51,7 +51,7 @@ Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos
|
||||
- `backend/tests/models/romFile.spec.ts` — validaciones del modelo RomFile
|
||||
- **Pasos:**
|
||||
1. Escribir tests que fallen (healthcheck endpoint, crear modelo Game y validar)
|
||||
2. Configurar Express + Prisma, definir schema, ejecutar migración
|
||||
2. Configurar Fastify + Prisma, definir schema, ejecutar migración
|
||||
3. Implementar endpoint `/api/health`
|
||||
4. Ejecutar tests y verificar que pasan
|
||||
|
||||
@@ -218,7 +218,7 @@ Aplicación web self-hosted para gestionar una biblioteca de ROMs y videojuegos
|
||||
## **Decisiones técnicas clave** 🔧
|
||||
|
||||
- **Monorepo:** `/backend` y `/frontend` en el mismo repo, con workspaces de Yarn
|
||||
- **Backend:** Node.js + Express + TypeScript + Prisma + SQLite (migration a PostgreSQL posible en futuro)
|
||||
- **Backend:** Node.js + Fastify + TypeScript + Prisma + SQLite (migration a PostgreSQL posible en futuro)
|
||||
- **Frontend:** React + Vite + TypeScript + Tailwind CSS + shadcn/ui + TanStack Query + TanStack Router
|
||||
- **APIs de metadata:** IGDB (primary), RAWG (fallback), TheGamesDB (artwork/retro)
|
||||
- **Tests:** Backend (Vitest + Supertest), Frontend (Vitest + React Testing Library), E2E (Playwright)
|
||||
|
||||
Reference in New Issue
Block a user