Loading repository data…
Loading repository data…
CodeCastersD20 / repository
GoblinHub es una plataforma web fullstack diseñada para profesionalizar y centralizar la operación de La Guarida del Goblin S.A. de C.V.. El proyecto surge de la necesidad de sustituir procesos manuales y hojas de cálculo por una solución digital escalable que fortalezca la comunidad de jugadores, optimice la logística de eventos y mejore el contro
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Plataforma fullstack para la comunidad de juegos de mesa, wargames y rol
Desarrollado por el equipo CodeCasters
GoblinHub es una plataforma web para La Guarida del Goblin, una tienda especializada en juegos de mesa, wargames y rol de mesa. Permite a los jugadores consultar el catálogo de productos, inscribirse a eventos y torneos, acumular puntos de fidelidad y canjearlos por recompensas. Los administradores gestionan todo desde un panel integrado.
| Capa | Tecnología | Por qué |
|---|---|---|
| Frontend | React 19 + TypeScript + Vite | SPA rápida con hot reload y tipado estricto |
| Backend | NestJS + TypeScript | Framework modular, escalable y con DI nativa |
| ORM | Prisma | Type-safe, migraciones declarativas, Prisma Studio |
| Base de datos | PostgreSQL (Supabase) | Relacional robusto, hosted con Supabase |
| Auth | Supabase Auth + JWT | Gestión de usuarios, email confirm, reset password |
| Storage | Supabase Storage | Imágenes de productos, eventos y avatares |
| Tests (back) | Jest + Supertest | Tests unitarios y E2E del API |
| Tests (front) | Vitest + Testing Library + Playwright | Tests unitarios y E2E del UI |
GoblinHub_CodeCasters/
├── docs/
│ ├── DOCUMENTATION_BAKCEND.md # 📖 Documentación técnica del backend
│ └── DOCUMENTATION_FRONTEND.md # 📖 Documentación técnica del frontend
│
├── goblinhub-api/ # Backend — NestJS + Prisma
│ ├── src/
│ │ ├── modules/ # events, products, rewards, supabase, upload, backup
│ │ └── connect/ # Módulo y servicio de Prisma
│ ├── prisma/
│ │ └── schema.prisma # Esquema de base de datos
│ └── package.json
│
├── goblinhub_web/ # Frontend — React + Vite
│ ├── src/
│ │ ├── pages/ # Una carpeta por ruta
│ │ ├── components/ # Componentes reutilizables
│ │ ├── services/ # Llamadas a la API
│ │ └── lib/api.ts # Axios con interceptores de auth
│ ├── e2e/ # Tests Playwright
│ └── package.json
│
├── .gitignore
└── README.md
La documentación técnica detallada de cada parte está en la carpeta
docs/:
postgresql-client instalado en el sistema (para los backups de BD)Verifica tu entorno:
node --version # >= 18.x
npm --version # >= 9.x
git clone <URL_DEL_REPOSITORIO>
cd GoblinHub_CodeCasters
cd goblinhub-api
npm install
# Copiar y rellenar las variables de entorno
cp .env.example .env
Variables de entorno necesarias en goblinhub-api/.env:
DATABASE_URL="postgresql://user:password@host:5432/goblinhub?schema=public"
SUPABASE_URL="https://<tu-proyecto>.supabase.co"
SUPABASE_ANON_KEY="<anon-key>"
SUPABASE_SERVICE_KEY="<service-role-key>"
JWT_SECRET="<jwt-secret-de-supabase>"
CORS_ORIGIN="http://localhost:5173"
NODE_ENV="development"
Aplicar migraciones de base de datos:
npx prisma migrate dev
cd ../goblinhub_web
npm install
cp .env.example .env
Variables de entorno necesarias en goblinhub_web/.env:
VITE_API_URL="http://localhost:3000"
VITE_GOOGLE_MAPS_API_KEY="<tu-api-key-de-google-maps>"
Requiere haber instalado dependencias en ambas carpetas previamente.
No hay script raíz configurado. Abre dos terminales:
Terminal 1 — Backend:
cd goblinhub-api
npm run start:dev
# API disponible en http://localhost:3000
# Swagger UI en http://localhost:3000/api
Terminal 2 — Frontend:
cd goblinhub_web
npm run dev
# App disponible en http://localhost:5173
cd goblinhub-api && npm run start:dev
cd goblinhub_web && npm run dev
goblinhub-api/)npm run start:dev # Desarrollo con hot-reload
npm run build # Compilar TypeScript
npm run start:prod # Producción
npm run test # Tests unitarios
npm run test:cov # Tests con cobertura
npm run test:e2e # Tests E2E
npm run lint # ESLint + auto-fix
npm run api # Pipeline completo (lint + type-check + build + tests)
npx prisma studio # GUI de la base de datos
npx prisma migrate dev # Aplicar migraciones
goblinhub_web/)npm run dev # Desarrollo con HMR
npm run build # Build de producción
npm run preview # Preview del build
npm run test # Tests unitarios (Vitest)
npm run test:watch # Tests en modo watch
npm run test:e2e # Tests E2E (Playwright)
npm run test:e2e:ui # Tests E2E con interfaz gráfica
npm run lint # ESLint
npm run web # Pipeline completo (lint + type-check + tests + build)
SupabaseAuthGuard.admin / empleado / jugador) con RolesGuard.class-validator) con whitelist: true.SERVICE_KEY de Supabase al cliente.Proyecto desarrollado por el equipo CodeCasters de la Universidad Tecnológica de Hermosillo.
| Integrante | Rol en el proyecto |
|---|---|
| Sadrach Juan Diego Garcia Flores | Backend + Frontend |
| Adrian Eduardo Santos Rosales | Frontend |
| Jesus Adriana Martinez Trillas | Frontend |
| Erick Daniel Arvayo Aviles | Backend |
Distribuido bajo la licencia incluida en LICENSE.