BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 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 Requisitos: Node 18+, PostgreSQL 14+ corriendo.檢視完整 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.