Commit Graph

14 Commits

Author SHA1 Message Date
c27e9bec7a feat: add frontend README and backend test database
- Create frontend/README.md with setup, testing, and API integration instructions
- Add backend test database file for local testing
- Implement README validation tests to ensure documentation completeness
- Update project documentation to reflect new structure and features
2026-02-12 20:53:59 +01:00
571ac97f00 feat: implement ROMs management UI (Phase 8)
Backend (Phase 8.1):
- Add ROMs endpoints: GET, GET/:id, PUT/:id/game, DELETE
- Add metadata search endpoint using IGDB/RAWG/TGDB
- Implement RomsController with ROM CRUD logic
- Add 12 comprehensive ROM endpoint tests
- Configure Vitest to run tests sequentially (threads: false)
- Auto-apply Prisma migrations in test setup

Frontend (Phase 8.2 + 8.3):
- Create ROM types: RomFile, Artwork, EnrichedGame
- Extend API client with roms and metadata namespaces
- Implement 5 custom hooks with TanStack Query
- Create ScanDialog, MetadataSearchDialog, RomCard components
- Rewrite roms.tsx page with table and all actions
- Add 37 comprehensive component and page tests

All 122 tests passing: 63 backend + 59 frontend
Lint: 0 errors, only unused directive warnings
2026-02-12 19:52:59 +01:00
630ebe0dc8 feat: implement complete game management with CRUD functionality
Backend:
- Add RESTful API endpoints for games: GET, POST, PUT, DELETE /api/games
- Implement GamesController for handling game operations
- Validate game input using Zod
- Create comprehensive tests for all endpoints

Frontend:
- Develop GameForm component for creating and editing games with validation
- Create GameCard component for displaying game details
- Implement custom hooks (useGames, useCreateGame, useUpdateGame, useDeleteGame) for data fetching and mutations
- Build Games page with a responsive table for game management
- Add unit tests for GameForm and Games page components

Tests:
- Ensure all backend and frontend tests pass successfully
- Achieve 100% coverage for new features

All changes are thoroughly tested and validated.
2026-02-11 22:09:02 +01:00
08aca0fd5b feat: scaffold frontend (Vite + React + Vitest)
- Añade scaffold de frontend con Vite y React
- Configura Vitest y tests básicos (App, Navbar)
- Añade QueryClient y hooks/plantillas iniciales
2026-02-09 20:22:24 +01:00
7ca465fb73 feat: stream hashing and archive-entry import support
- Añade `computeHashesFromStream` para hashing desde streams
- Adapta `importDirectory` para procesar entradas internas usando `streamArchiveEntry`
- Añade tests unitarios para hashing por stream e import de entradas de archive
2026-02-09 19:36:18 +01:00
97a7f74685 feat: expose archive entries in fsScanner
- Añade `scanDirectory` support para listar entradas internas de ZIP/7z
- Añade test unitario que mockea `archiveReader.listArchiveEntries`
- Añade límite configurable `ARCHIVE_MAX_ENTRIES` y comprobación básica de seguridad
2026-02-09 19:26:00 +01:00
ab63361e66 feat: add streamArchiveEntry to archiveReader and tests
- Añade `streamArchiveEntry` que devuelve un stream para entradas internas de ZIP/7z
- Añade tests unitarios que mockean `child_process.spawn` (7z + unzip fallback)
- Mantiene `listArchiveEntries` y documenta dependencia de binarios en CI
2026-02-09 19:15:55 +01:00
a702310da4 feat: add datVerifier and tests
- Añade `datVerifier` con `parseDat` y `verifyHashesAgainstDat`
- Añade tests y fixture XML para validar matching por CRC/MD5/SHA1/size
- Añade `fast-xml-parser` en `backend/package.json` (devDependency)
2026-02-09 18:50:11 +01:00
0526ff960f feat: add archive reader and tests
- Añade `archiveReader` que lista entradas en ZIP/7z con fallback a `unzip`
- Añade tests unitarios que mockean `child_process.exec` para validar parsing
- Documenta dependencia de binarios en README y CI (pasos previos)
2026-02-09 18:30:00 +01:00
4298b003d9 feat: import job runner in-memory
- Añade ImportRunner en memoria con concurrencia configurable
- Tests TDD para enqueue, concurrencia y comportamiento tras stop
- Actualiza /api/import/scan para encolar jobs y registrar errores
- Ajusta tsconfig.json para incluir tests en comprobaciones de tipo
2026-02-08 22:24:56 +01:00
1a42422c7e chore: configurar Prisma y limpiar artefactos
- Genera Prisma Client y aplica migración de prueba
- Ajusta configuración de Yarn (nodeLinker) para resolver PnP
- Añade reglas a .gitignore y elimina artefactos generados
2026-02-08 17:36:18 +01:00
fb4b279db0 chore(docs): completar Fase 2 — requisitos y arquitectura
- Añade/actualiza `docs/requirements.md`, `docs/architecture.md`, `docs/api-integration.md`, `docs/data-model.md`
- Documenta criterios de aceptación y decisiones técnico-arquitectónicas
- Recomendación: añadir `docs/legal-considerations.md` (pendiente)
2026-02-08 10:45:22 +01:00
b95c7366be 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. 2026-02-07 19:10:06 +01:00
ddbe59ead6 docs 2026-02-07 18:47:06 +01:00