Skip to content

resilio-dev/tournament-management-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

🏆 Gestor de Torneos - Playoffs Edition

Una aplicación completa para la creación, gestión y seguimiento de torneos deportivos en formato de playoffs, con soporte para sorteos de equipos y grupos, así como generación automática de llaves eliminatorias (ida o ida y vuelta).

📌 Características destacadas

  • Creación y edición de torneos en formato playoffs.
  • Sorteo automático de equipos en grupos.
  • Generación de llaves eliminatorias (simple o doble partido).
  • Gestión de equipos y jugadores con validaciones de edad, DNI y roles.
  • Registro de resultados y avance automático en la llave.
  • Autenticación y autorización con JWT:
    • ADMIN → Acceso completo.
    • USUARIO → Gestión de sus torneos y equipos.
    • Público → Visualización de torneos y resultados.
  • Paginación y filtros en listados (equipos, torneos, jugadores) para mejor rendimiento y experiencia.
  • Carga perezosa (Lazy Loading) para mejorar el rendimiento en la carga de datos.
  • Interfaz intuitiva optimizada para organizadores y espectadores.

🛠 Tecnologías utilizadas

Backend

  • Spring Boot 3 → API REST y lógica de negocio.
  • Spring Security + JWT → Autenticación y autorización.
  • JPA/Hibernate → Persistencia de datos.
  • MySQL → Base de datos relacional.
  • Lombok → Reducción de código boilerplate.
  • Swagger → Documentación de Api.
  • ModelMapper → Mapeo de DTOs.

Frontend

  • Angular 19 → SPA moderna y reactiva.
  • Bootstrap + Sass → Estilos y responsive design.
  • NgToast → Manejo global de notificaciones.

Infraestructura

  • Docker → Contenerización y despliegue.
  • Docker Compose → Orquestación de frontend, backend y base de datos.

📂 Estructura del proyecto

Backend

src/main/java/com/gestordetorneos
├── 📡 controller/           # Controladores REST (API endpoints)
├── ⚙️ service/              # Lógica de negocio y reglas del dominio
├── 🗃 repository/            # Repositorios JPA para acceso a datos
├── 🏷 model/                # Entidades JPA y enums del dominio
├── 📦 dto/                  # Objetos de transferencia (Request/Response)
├── 🔧 configuration/        # Configuraciones (ModelMapper, Swagger, CORS, etc.)
└── 🔐 security/             # Seguridad JWT, filtros, autenticación y autorización

Frontend

src/
├── 🌐 app/
│   ├── 🔐 core/
│   │   ├── 🛡️  guards/          # Protección de rutas
│   │   ├── ⚙️  interceptors/    # Interceptores HTTP
│   │   ├── 📦 models/           # Interfaces y tipos
│   │   └── 🔄 services/         # Servicios compartidos (auth, torneos, otros)
│   │
│   ├── 🧩 features/
│   │   ├── 🏠 home/             # Página de inicio
│   │   ├── 🏆 torneos/          # Gestión de torneos
│   │   ├── 🔑 login/            # Autenticación
│   │   └── 🔄 playoffs/         # Gestión de eliminatorias
│   │
│   ├── 🎨 layouts/
│   │   ├── 🚪 authLayout/       # Layout para login y registro
│   │   └── 🧱 mainLayout/       # Layout principal con menú y barra superior
│   │
│   ├── 🔗 shared/               # Componentes, módulos y utilidades reutilizables
│   └── 📏 pipes/                # Pipes personalizados (formato de fechas, otros)   

📜 Patrones y buenas prácticas

  • DTO Pattern → Separación entre entidades y datos expuestos por la API.
  • Service Layer Pattern → Lógica centralizada en servicios.
  • Repository Pattern → Acceso a datos desacoplado.
  • Modularización en Angular → Componentes standalone y carga perezosa.
  • Uso de interfaces y clases para separar modelos de API y modelos internos de la app.
  • Validaciones personalizadas en backend (edad mínima/máxima, fechas de torneos, otros).

Acceso

Usuario administrador inicial configurado en application.properties (backend).

📄 Licencia

Este proyecto está bajo la licencia MIT - consulta el archivo LICENSE para más detalles.


📬 Contacto

¿Tienes preguntas, sugerencias o quieres unirte al equipo como desarrollador? ¡Contáctame!

💬 Estoy abierto a colaboraciones, feedback y nuevas ideas. ¡Hablemos!

About

Una aplicación completa para la creación, gestión y seguimiento de torneos deportivos, desarrollada con tecnologías modernas y escalables.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors