Repository navigation
Ejecutar y desplegar
- Instala Java 21 (por ejemplo Temurin) y Git. Recomendado: IntelliJ IDEA Community.
git clone https://github.com/riverri/IS1.git- Arranca:
-
IntelliJ: abre la carpeta, abre
ApuestasApplication.javay pulsa el triángulo verde junto a la clase. -
Terminal:
./mvnw spring-boot:run(Windows:mvnw.cmd spring-boot:run).
-
IntelliJ: abre la carpeta, abre
- Espera a
Started ApuestasApplicationy abre http://localhost:8080. - Usuarios de prueba:
- Creador:
creador@apuestas.es/creador123 - Jugador:
usuario@apuestas.es/usuario123
- Creador:
- Pruebas:
./mvnw test.
Si en IntelliJ falta la clase principal (campo Main class en rojo): pon es.ucm.fdi.is1.apuestas.ApuestasApplication y el módulo apuestas, o arranca desde el triángulo verde de la clase.
Para partidos reales, añade FOOTBALL_DATA_TOKEN (ver API de datos deportivos).
compartir.bat (Windows) o ./compartir.sh sacan un enlace público tipo https://palabras-al-azar.trycloudflare.com que funciona desde cualquier red.
- Para la aplicación en IntelliJ (el script necesita el puerto 8080 libre).
- En una terminal en la carpeta del proyecto, si quieres partidos reales:
set FOOTBALL_DATA_TOKEN=tu_clave. - Ejecuta
compartir.bat. Te pedirá una contraseña para el creador (la del README es pública). - Comparte el enlace.
Solo funciona con tu ordenador encendido y las dos ventanas abiertas, y el enlace cambia cada vez. Si la red de la facultad bloquea el túnel, usa los datos del móvil.
| Servicio | Para qué |
|---|---|
| Render | Ejecuta la aplicación con el Dockerfile y render.yaml
|
| Neon | PostgreSQL permanente (0,5 GB) |
| UptimeRobot | Visita la web cada 5 minutos para que Render no la apague |
- Neon: crea un proyecto (región Frankfurt), desactiva Connection pooling y copia los datos de conexión.
-
Render: Web Service con el repositorio
riverri/IS1, ramamain, Docker, instancia Free. Variables:
| Variable | Valor |
|---|---|
CREADOR_PASSWORD |
Obligatoria. Contraseña del creador |
SPRING_DATASOURCE_URL |
jdbc:postgresql://HOST/neondb?sslmode=require |
SPRING_DATASOURCE_USERNAME |
Usuario de Neon |
SPRING_DATASOURCE_PASSWORD |
Contraseña de Neon |
FOOTBALL_DATA_TOKEN |
Opcional |
MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD
|
Opcional: correo para el enlace de recuperar la contraseña |
- UptimeRobot: monitor HTTP(s) con el enlace de Render cada 5 minutos.
Sin servidor de correo, el enlace de ¿Has olvidado tu contraseña? se escribe en la consola de la aplicación (línea Enlace para recuperar la contraseña de …). Para enviarlo de verdad, por ejemplo con Gmail:
- Activa la verificación en dos pasos y crea una contraseña de aplicación en https://myaccount.google.com/apppasswords.
- Define
MAIL_HOST=smtp.gmail.com,MAIL_PORT=587,MAIL_USERNAME=tu_cuenta@gmail.comyMAIL_PASSWORD=la_contraseña_de_aplicación.
Cada fusión en main se publica sola. No uses la base de datos gratuita de Render: se borra a los 30 días.
Esta wiki se genera desde el repositorio: las páginas salen de docs/wiki, las actas de los sprints de docs/scrum/sprints y los diagramas de docs/diseno/uml.md. Lo que se edite aquí directamente se pierde en la siguiente publicación: para cambiar una página, edita su archivo en el repositorio con un pull request.
El proyecto
Cómo funciona
Técnico
Proceso
Sprints
Ayuda