尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证🏆 Sistema de gestión de ligas deportivas escolares - Liga EDUmind
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Gestión de ligas deportivas escolares donde no solo puntúa el marcador. Cada partido reparte puntos por juego limpio, por el arbitraje del alumnado y por el comportamiento de la grada, y la clasificación se lee por Los Cinco Mundos. Backend en FastAPI, frontend en React (PWA con modo offline), con vistas públicas para proyectar en el aula o el pabellón. El objetivo pedagógico es que ganar el partido no baste para ganar la liga.查看完整 README ↗
Gestión de ligas deportivas escolares donde no solo puntúa el marcador. Cada partido reparte puntos por juego limpio, por el arbitraje del alumnado y por el comportamiento de la grada, y la clasificación se lee por Los Cinco Mundos. Backend en FastAPI, frontend en React (PWA con modo offline), con vistas públicas para proyectar en el aula o el pabellón.
El objetivo pedagógico es que ganar el partido no baste para ganar la liga.
Sitio: https://liga.edumind.es · Versión 3.0.1 · CHANGELOG · Decisiones · Privacidad · Créditos
En corto: el alumnado no tiene cuenta ni tabla; sin analítica; al abrir la app no se conecta con ningún tercero. El servidor guarda ligas, equipos, partidos, evaluaciones y fichas (sin nombre de alumno); el navegador guarda una copia offline y las preferencias de accesibilidad. Servicios opcionales del servidor: correo SMTP (fichas al docente), webhook de Discord (propuestas de deporte) y Nextcloud (copia de PDFs). Detalle completo, plazos y variables en PRIVACY.md.
Para usar la liga en un centro sin depender de ningún servidor externo: un solo comando levanta base de datos, backend, worker de correo y frontend en cualquier equipo con Docker, accesible desde las tablets y pantallas de la red del centro. Los datos del alumnado no salen de ese equipo.
git clone https://github.com/edumind-es/liga-de-valores.git
cd liga-de-valores
./scripts/instalar_aula.sh
El instalador genera credenciales locales, aplica las migraciones y ofrece crear el usuario administrador. Guía completa (Windows, copias de seguridad, actualizaciones, qué funciona sin internet): docs/instalacion-aula.md.
Frontend:
cd frontend
npm ci
npm run dev # o npm run build
Backend:
cd backend
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload
Copia .env.example a .env en backend/ y frontend/ y rellénalos. Los valores del ejemplo son marcadores: genera secretos nuevos para cualquier despliegue real. También hay docker-compose.yml (backend, worker de correo, PostgreSQL, Redis y frontend).
cd backend && pytest # 127 pruebas (pytest-asyncio, SQLite en memoria)
cd frontend && npm run test:run # 7 pruebas Vitest + Testing Library
cd frontend && npm run lint
La integración continua (.github/workflows/ci-cd.yml) compila el frontend, comprueba el backend, valida que las migraciones de Alembic sean seguras y con una sola cabeza, y pasa pip-audit, bandit y Trivy sobre la imagen.
Mapa de carpetas
backend/app/api/v1/ — un fichero por recurso de la API (ligas.py, partidos.py, public.py para el acceso por PIN, tools.py para las fichas, tipos_deporte.py, criterios.py…).backend/app/models/ y schemas/ — tablas SQLAlchemy y esquemas Pydantic.backend/app/services/ — lógica: clasificación (clasificacion_service.py), PDF (pdf_generator.py), correo, Discord, Nextcloud, limpieza de fichas, PIN, códigos anónimos.backend/app/core/mundos.py — Los Cinco Mundos y el mapeo pedagógico por defecto.backend/alembic/versions/ — migraciones; el catálogo de deportes vive aquí.frontend/src/ — pantallas en pages/, componentes en components/, offline en lib/offline/, idiomas en i18n/locales/. Ver frontend/README.md.Añadir un deporte
backend/alembic/versions/011_add_new_sports.py con una revisión nueva (revises = la cabeza actual, alembic heads).tipos_deporte: nombre, codigo (único, sin espacios), tipo_marcador (goles, sets, puntos, tries o carreras), permite_empate, config (JSON con las reglas del marcador: puntos_para_ganar, sets_para_ganar, botones_puntuacion, tiempo_posesion_segundos…), icono, descripcion y categoria (alternativo, popular, tradicional, convencional). Usa ON CONFLICT (codigo) DO UPDATE para que sea idempotente.alembic upgrade head. El frontend lee el catálogo de la API: no hay que tocarlo. Si el deporte necesita un marcador distinto a los cinco tipos existentes, el componente está en frontend/src/pages/Partidos/./proponer-deporte.Cambiar los criterios de valores o los mundos
Ligas → Gestión de criterios) o desde plantillas (GET /api/v1/criterios/plantillas, definidas en backend/app/api/v1/criterios.py); cada criterio lleva nombre, descripción, escala y mundo.backend/app/core/mundos.py, pensado para cambiarse sin tocar nada más.Añadir un idioma: copia frontend/src/i18n/locales/es.json con el código nuevo y regístralo en frontend/src/i18n/index.ts.
Desactivar servicios opcionales: deja vacías DISCORD_WEBHOOK_URL o NEXTCLOUD_*; el SSO se apaga con VITE_AUTHENTIK_ENABLED=false; el correo necesita MAIL_* (sin él, las fichas no llegan al docente).
Estilo: colores solo a través de tokens CSS de frontend/src/index.css; tipografías en local; nada de CDN al abrir la app.
Este recurso se ha desarrollado con vibe coding con asistencia de IA (Claude Code y ChatGPT), según la política de IA de EDUmind. Lo que ha comprobado el autor:
/ejemplo-didactico) se organizó con IA y fue supervisada por el autor; avisa de que conviene contrastar las referencias curriculares con el decreto vigente.Se puede colaborar sin programar: contar cómo te ha ido en clase, reportar un fallo, revisar los textos o traducir. Todo el proyecto está en español. Empieza por CONTRIBUTING.md y el código de conducta.
¿Un fallo de seguridad? No abras un issue público: ver SECURITY.md.
Este repositorio es una release saneada para revisión y auditoría: no incluye secretos, configuración de despliegue ni datos de aula. Ver OPEN_SOURCE_RELEASE.md.
Licencia doble AGPL-3.0-or-later o EUPL-1.2, a elección de quien la reutilice. Ver LICENSE, COPYRIGHT, AUTHORS y NOTICE. El material de terceros (tipografías OFL, pictogramas ARASAAC CC BY-NC-SA, librerías) está inventariado en CREDITS.md.
EDUmind® es marca registrada en España (OEPM). El código es libre; la marca y los logotipos no se ceden con él — ver TRADEMARKS.md.
Por Luis Vilela Acuña — maestro de Educación Física · EDUmind®.