Aplicacion movil Android para gestion de reservas de cancha y salones, con roles de trabajador y administrador.
En GitHub Actions: API Tests (server/, npm run test:ci), SonarCloud (Android + JaCoCo) y Snyk en dependencias. Secretos: SONAR_TOKEN y SNYK_TOKEN (Sonar/Snyk). Detalle: docs/EVIDENCIAS_CALIDAD_SONAR_SNYK.md.
- Android: Kotlin + Jetpack Compose
- API: Node.js + Express
- Base de datos: MySQL
- Login por nombre + PIN
- Cancha: reservas por horario, estados y detalle
- Salones: reservas y disponibilidad (admin en solo lectura)
- Reportes: grafico de ingresos por area y resumen por periodo
- Perfil: cambio de PIN, historial y cierre de sesion
- Sesion unica por usuario (bloquea login en otro dispositivo activo)
- JDK 11+
- Android SDK
- Node.js 18+
- MySQL 8+
Ejecutar:
server/schema.sql
Si tu base ya existia antes de la sesion unica, ejecutar tambien:
server/migrations/001_usuarios_active_token.sql
En server/:
npm install
npm startAPI por defecto: http://0.0.0.0:3000
Definir happyJump.api.baseUrl en local.properties:
- Emulador:
http://10.0.2.2:3000/ - Celular fisico (misma Wi-Fi):
http://IP_DE_TU_PC:3000/
Compilar/instalar:
./gradlew :app:installDebug- Administrador:
Admin/ PIN1234 - Trabajador:
Juan Perez/ PIN1234
git add .
git commit -m "feat: descripcion corta del avance"
git pushFlujo por ramas recomendado:
git checkout develop
# trabajas cambios
git add .
git commit -m "feat: avance"
git push -u origin developCuando el avance este estable:
git checkout main
git merge develop
git pushTipos recomendados de commit:
feat:nueva funcionalidadfix:correccionrefactor:mejora internatest:pruebasdocs:documentacion
- Guía:
docs/GUIA_JENKINS_CI_CD.md - Build:
ci/build-production.sh→dist/(API.tar.gz+ APK) - Deploy:
ci/deploy-server.sh→~/servers/happyjump/ - Pipeline:
Jenkinsfile(tests → Sonar → build → deploy)
- Checklist de despliegue y testing:
docs/DESPLIEGUE_Y_PRUEBAS_CHECKLIST.md - Entrega calidad / Sonar / Snyk / unit tests:
docs/EVIDENCIAS_CALIDAD_SONAR_SNYK.md - Checklist profesor (ítems 2–5):
docs/CHECKLIST_ENTREGA_PROFESOR.md