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.
StreetPlayer — Red social deportiva. Organiza pichangas, sube de nivel y domina el ranking de tu ciudad.
Translation pending
Sports & fitnessJavaScript · CSSGitHub @luiggi100210-netizenOnlineOwner 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.
Red social deportiva para jugadores de calle: organiza pichangas, sube XP, forma equipos, lanza retos y domina el ranking de tu ciudad. Stack: Node.js + Express + PostgreSQL + Socket.IO · React 18 + Vite + Tailwind Requisitos: Node 18+, PostgreSQL 14+ corriendo.Read the full README ↗
Red social deportiva para jugadores de calle: organiza pichangas, sube XP, forma equipos, lanza retos y domina el ranking de tu ciudad.
Stack: Node.js + Express + PostgreSQL + Socket.IO · React 18 + Vite + Tailwind
streetplayer/
├── backend/ API REST + WebSockets + crons (Express, puerto 4000)
│ └── src/
│ ├── controllers/ Lógica de cada dominio (auth, eventos, torneos…)
│ ├── routes/ Rutas + validación (express-validator)
│ ├── middleware/ auth (JWT), validate, asyncHandler
│ ├── services/ XP, medallas, notificaciones, mailer, crons
│ ├── db/ schema.sql + migraciones (corren solas al arrancar)
│ └── config/ env (validación), cors, database (pool pg)
└── frontend/ SPA React (Vite, puerto 5173)
└── src/
├── pages/ Una carpeta por dominio; /admin = panel completo
├── components/ UI compartida (AuthShell, Avatar, UploadFoto…)
├── services/ api (axios + renovación de tokens), socket, authStorage
├── context/ AuthContext (sesión)
└── styles/ brand.js (tokens de marca) + Tailwind
Requisitos: Node 18+, PostgreSQL 14+ corriendo.
# 1. Instalar todo
npm run install:all
# 2. Configurar variables (copiar y editar)
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
# 3. Levantar backend + frontend juntos
npm run dev
ADMIN_EMAIL / ADMIN_PASSWORD.backend/uploads/ (solo desarrollo).FIREBASE_* en backend y VITE_FIREBASE_* en frontend).| Pieza | Plataforma | Notas |
|---|---|---|
| Backend | Render (render.yaml) | Health check en /health. Variables requeridas en producción: DATABASE_URL, JWT_SECRET, ADMIN_PASSWORD, ALLOWED_ORIGINS. Recomendadas: FIREBASE_*, SMTP_*, CLOUDINARY_* (sin Cloudinary las fotos se pierden en cada deploy: el disco de Render es efímero). |
| Frontend | Vercel (frontend/vercel.json) | Definir VITE_BACKEND_URL y VITE_FIREBASE_*. |
| Base de datos | Neon / Render PostgreSQL | Las migraciones son idempotentes y corren al arrancar. |
⚠️ El backend asume una sola instancia (crons in-process y Socket.IO en memoria). Antes de escalar horizontalmente: adapter de Redis para Socket.IO y mover crons a un worker.