Netnyahoo
Real Chromium for the Mac, free and open source: Arc's sidebar and Dia's polish, with no account. Immune to ads, trackers and prosecution.
App de Arbitraje Inteligente
Translation pending
OtherTypeScript · PythonGitHub @DanielHR3OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Este repositorio contiene el código fuente completo del proyecto "Pañuelo sin efecto", un sistema de arbitraje y gestión de ligas de Flag Football, construido bajo el Marco Metodológico AIDLC de la COEMERE.
/web: Frontend (Aplicación Web Progresiva - PWA) construida con Next.js (App Router) y Tailwind CSS./backend: API REST construida con NestJS y Prisma (PostgreSQL).Nota de Gobernanza: La documentación detallada, Historias de Usuario (HHU), y diagramas arquitectónicos de este proyecto viven en la Bóveda de Obsidian local del responsable técnico. No se desarrolla funcionalidad sin una Historia de Usuario aprobada.
Requisitos: Node 20+, Docker.
# 1. Base de datos (PostgreSQL 16 en el puerto 5433 del host)
docker compose up -d
# 2. API
cd backend
cp .env.example .env # ajusta JWT_SECRET y SEED_SUPERADMIN_PASSWORD
npm install
npx prisma migrate dev # aplica migraciones y genera el cliente
npm run start:dev # http://localhost:3000 (Swagger en /docs)
# crea el SUPERADMIN al arrancar si SEED_SUPERADMIN_PASSWORD está en .env
# 3. Web
cd ../web
cp .env.example .env.local
npm install
npm run dev # http://localhost:3001 o el puerto que indique Next
Verificación antes de abrir un PR (lo mismo que corre el CI en .github/workflows/ci.yml):
cd backend && npm run lint && npm test && npm run test:e2e && npm run build
cd web && npm run lint && npm test && npm run build
| Pieza | Servicio | Por qué |
|---|---|---|
| Base de datos | Neon (neon.tech) | PostgreSQL gratis sin caducidad. El Postgres gratis de Render se borra a los 30 días. |
| API | Render (Blueprint render.yaml, Docker) | Gratis; se duerme tras 15 min sin tráfico y tarda ~1 min en despertar. |
| Web | Vercel (Root Directory = web) | Gratis, HTTPS automático (requisito para instalar la PWA). |
Pasos, en orden:
panuelo y copiar la cadena de conexión (con ?sslmode=require).main). Capturar DATABASE_URL (Neon). Dejar CORS_ORIGINS vacío el primer día. Al arrancar, el contenedor aplica prisma migrate deploy solo.SEED_SUPERADMIN_PASSWORD en las variables del servicio de Render. La API lo crea sola al arrancar (idempotente); no hace falta shell ni seed manual.web, variable NEXT_PUBLIC_API_URL = URL pública de la API en Render.CORS_ORIGINS = URL de Vercel y volver a desplegar.keep-alive.yml (GitHub Actions, cada 10 min) más un monitor HTTP gratuito de UptimeRobot cada 5 min sobre la URL de la API; sin esto la API tarda ~1 min en despertar durante un partido.PAGO_CLABE, PAGO_BANCO y PAGO_BENEFICIARIO (ver backend/.env.example). Mientras falte alguna, /admin/plan avisa que el pago no está configurado. Los datos bancarios nunca van en el código ni en el repo.VERCEL_GIT_COMMIT_SHA solo; la web lo usa como NEXT_PUBLIC_VERSION para que la PWA instalada se actualice al volver al frente. No fijar deploymentId en next.config.ts (rompe el build en Vercel, error E971).Variables opcionales de la API: SEED_DEMO=false desactiva la liga demo que se crea al arrancar; JWT_EXPIRES_IN (por defecto 7d).
El runbook detallado con verificación paso a paso y solución de problemas vive en la bóveda de Obsidian (03_Gestion_Proyecto/06_Runbook_Despliegue_Gratis_y_Pruebas.md).