flutter
Flutter는 wger용 피트니스·운동 앱입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🏆 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®.