- This project is a WIP -
Backend para gestionar hojas de personaje multi-sistema (PBTA, D&D, Vampiro, etc.) con Campaigns (mesas/campañas), Players (membresías por campaña) y roster de PCs/NPCs.
- Node.js 18+ (recomendado 20+)
- Docker + Docker Compose
- Git
- NestJS + TypeScript
- PostgreSQL
- Prisma ORM
Formatear schema:
npx prisma format
Validar schema:
npx prisma validate
Generar Prisma Client:
npx prisma generate
Aplicar migraciones:
npx prisma migrate dev
Abrir Prisma Studio:
npx prisma studio
Levantar la DB:
docker compose up -d
docker compose ps
Detén y borra los volúmenes:
docker compose down -v
Seedear la base de datos:
npx prisma db seed
(esto sólo la va a popular con lo que está declarado en el archivo prisma\seed.ts)
- Cuenta global del sistema.
- Dueño de personajes (Characters)
- Puede crear y administrar Campaigns
- Participa en Campaigns como Player
- Familia de reglas / motor base el juego. Ejemplos: PBTA, DND5E, VTM5
- Juego concreto dentro de un System. Ejemplos: Masks, Apocalypse World, D&D 5e, Vampiro 5e
- Definición de hoja / playbook.
- Contiene el schema JSON que define campos y validaciones
- Versionado para evitar romper personajes existentes
- Membresía de un User dentro de una Campaign, puede tener un Character asignado o no
- Define el rol (GM / Player)
- Instancia de personaje basado en un Playbook.
- Pertenece a un User
- Puede reutilizarse en múltiples Campaigns
- Asocia Characters a una Campaign.
- Permite NPCs (Characters sin Player)
- Guarda metadata contextual (ej. notas, flags)
- Instancia de juego en curso (mesa/campaña).
- Pertenece a un Game
- Tiene un owner (User)
- Mantiene un roster de PCs y NPCs
-
Crear Campaign: el owner se convierte automáticamente en GM
-
Crear Character: se crea desde un Playbook y se valida contra su schema
-
Agregar NPC: se asocia un Character a una Campaign como NPC
-
Asignar Character: un Player asigna su personaje dentro de la Campaign