BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
Armá el fixture, cargá resultados y seguí la tabla. Descubrí torneos cerca de vos.
Translation pending
Sports & fitnessTypeScript · CSSGitHub @MaruGamonalOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Plataforma de gestión y descubrimiento de torneos de fútbol amateur. La fuente de verdad del producto vive en docs/: • docs/LEEME.md — cómo está armado el paquete y por dónde empezar. • docs/documentacion/ — los 12 documentos del embudo (funcional → técnico), incluido el backlog detallado con los 33 tickets del MVP. • docs/diseno/ — el paquete de diseño (Design System + 11 dominios + 5 flujos). • docs/contexto/ — notas fuera del embudo (monetización, revisión del handoff). Ante cualquier duda sobre una regla de negocio, manda docs/documentacion/06-reglas-negocio-y-decisiones-pendientes.md.Read the full README ↗
Plataforma de gestión y descubrimiento de torneos de fútbol amateur.
La fuente de verdad del producto vive en docs/:
docs/LEEME.md — cómo está armado el paquete y por dónde empezar.docs/documentacion/ — los 12 documentos del embudo (funcional → técnico), incluido el backlog detallado con los 33 tickets del MVP.docs/diseno/ — el paquete de diseño (Design System + 11 dominios + 5 flujos).docs/contexto/ — notas fuera del embudo (monetización, revisión del handoff).Ante cualquier duda sobre una regla de negocio, manda docs/documentacion/06-reglas-negocio-y-decisiones-pendientes.md.
Next.js (TypeScript, App Router) + PostgreSQL, monolito con una capa de servicios separada de la interfaz — un servicio por caso de uso, agrupados por dominio (docs/documentacion/10-especificacion-tecnica.md, sección 2.1).
src/
services/ un archivo por caso de uso, en carpetas por dominio — nunca importa de app/
db/ cliente de base de datos
lib/ contexto, firma de servicio, utilidades
app/ rutas de Next.js — la única capa que puede importar servicios
db/migrations/ migraciones versionadas (node-pg-migrate)
cp .env.example .env # completar DATABASE_URL (Postgres local o Supabase)
npm install
npm run migrate:up # aplica el esquema
npm run dev
Comandos útiles:
npm run verify — formato, lint, tipos, tests unitarios y tests de integración en un solo paso.npm test — solo los tests unitarios (mockean la base; no necesitan Postgres levantado).npm run test:integracion — la suite de integración: recrea una base de pruebas efímera (<nombre-de-tu-base>_test), le aplica todas las migraciones y corre contra ella de verdad — nunca contra la base de desarrollo. El rol de DATABASE_URL necesita permiso CREATEDB para poder crearla y borrarla (ALTER ROLE <rol> CREATEDB;, una sola vez).npm run migrate:create -- nombre — crea una migración nueva.npm run migrate:up / migrate:down — aplica / revierte migraciones.