FidESPN United 2026 es una aplicación de gestión de partidos de fútbol desarrollada en Java Swing para el Mundial United 2026. El sistema permite a diferentes tipos de usuarios (Administradores, Corresponsales y Fanáticos) interactuar con partidos en tiempo real, incluyendo reportes de eventos, chat en vivo, gestión de equipos favoritos y seguimiento de partidos en vivo.
La aplicación utiliza una arquitectura MVC (Model-View-Controller) con persistencia de datos mediante serialización Java, proporcionando una experiencia completa para la gestión y seguimiento de partidos de fútbol con una interfaz moderna y responsive.
- Java Development Kit (JDK): Versión 8 o superior
- Sistema Operativo: Windows, macOS o Linux
- Memoria RAM: Mínimo 512MB (recomendado 1GB)
- Espacio en Disco: 50MB de espacio libre
- Java Swing: Incluido en el JDK estándar
- Apache Derby: Base de datos embebida (requiere
derby.jaryderbyshared.jaren./lib/) - Java Collections Framework: Para estructuras de datos
- Java Beans (PropertyChangeSupport): Bus de eventos para actualizaciones en tiempo real
- AWT SystemTray: Notificaciones de escritorio
- Compilar clases del backend (incluyendo Derby drivers):
javac -cp "lib/derby.jar;lib/derbyshared.jar" -d bin src/com/fidespn/backend/*.java
- Ejecutar el servidor (crea Derby y datos demo si no existen):
java -cp "bin;lib/derby.jar;lib/derbyshared.jar" com.fidespn.backend.ServerApp- Escucha en
localhost:5432 - Base de datos:
./data/fidespn(Apache Derby Embedded) - Nota: En Windows usa
;como separador de classpath, en Linux/macOS usa:
- Escucha en
Nota: El cliente está configurado para usar el servidor por defecto.
Si el servidor no está disponible, el cliente mostrará un mensaje de error indicando que el backend no está en ejecución.
- Compilar cliente + modelos/servicios:
javac -d bin src/com/fidespn/main/*.java src/com/fidespn/model/*.java src/com/fidespn/service/*.java src/com/fidespn/service/exceptions/*.java src/com/fidespn/view/*.java src/com/fidespn/client/net/*.java src/com/fidespn/client/adapters/*.java
- Ejecutar cliente:
java -cp bin com.fidespn.main.MainApp
- Abrir el proyecto en tu IDE preferido (IntelliJ IDEA, Eclipse, NetBeans)
- Navegar a
src/com/fidespn/main/MainApp.java - Ejecutar la clase
MainApp
La aplicación incluye usuarios de demostración preconfigurados que se crean automáticamente en la primera ejecución:
| Usuario | Contraseña | Rol | Funcionalidades |
|---|---|---|---|
admin |
admin123 |
Administrador | Gestión completa del sistema |
corresponsal1 |
pass123 |
Corresponsal | Reportes en tiempo real |
fanatico1 |
pass123 |
Fanático | Seguimiento de equipos favoritos |
fanatico2 |
pass123 |
Fanático | Chat en vivo y partidos |
- Login con validación de credenciales
- Manejo de diferentes tipos de usuario con roles específicos
- Interfaz gráfica moderna con diseño responsive
- Manejo de excepciones personalizadas (InvalidCredentialsException, UserNotFoundException)
- Administrador: Control total del sistema, gestión de usuarios y partidos
- Dashboard completo con estadísticas
- Gestión de usuarios (crear, editar, eliminar)
- Supervisión de partidos y eventos
- Corresponsal: Reportes en tiempo real, gestión de eventos de partido
- Dashboard especializado para reportes
- Gestión de eventos de partido (goles, tarjetas, etc.)
- Actualización de marcadores en tiempo real
- Fanático: Seguimiento de equipos favoritos, chat en vivo
- Dashboard personalizado con equipos favoritos
- Gestión de equipos favoritos
- Visualización de partidos en vivo
- Creación y gestión completa de partidos
- Actualización de marcadores en tiempo real
- Sistema de eventos detallado (goles, tarjetas, faltas, etc.)
- Estados de partido (programado, en vivo, finalizado)
- Asignación de corresponsales a partidos
- Alineaciones de equipos
- Gestión de 20+ equipos participantes del Mundial 2026
- Asignación de equipos favoritos a fanáticos
- Información detallada de equipos con banderas
- Sistema de gestión de equipos favoritos con interfaz gráfica
- Chat específico para cada partido
- Mensajería entre usuarios con persistencia
- Interfaz de chat integrada en los dashboards
- Historial de mensajes por partido
- Ventana dedicada para seguimiento de partidos en vivo
- Actualización en tiempo real basada en eventos (sin polling)
- Visualización de eventos en tiempo real
- Marcadores actualizados dinámicamente y notificaciones de escritorio
- Base de datos Apache Derby embebida
- Tablas relacionales:
users,teams,matches,events,chat_messages,players,lineups - Carga automática al iniciar la aplicación
- Manejo de errores en la persistencia
- Diseño responsive con colores modernos
- Tipografía Inter para mejor legibilidad
- Iconografía con emojis de banderas
- Navegación intuitiva entre ventanas
- Botones estilizados y efectos visuales
En esta versión no hay funcionalidades pendientes. Las planificadas fueron implementadas.
- Registro de nuevos usuarios (auto-registro desde
LoginFrame) - Recuperación de contraseñas (diálogo de validación por usuario + email)
- Notificaciones de escritorio (SystemTray) ante eventos y cambios de marcador
- Actualizaciones en vivo event-driven con
PropertyChangeSupport - Estadísticas básicas por partido en
LiveMatchFrame - Exportación de reportes a PDF desde
CorrespondentDashboardFrameyLiveMatchFrame
client-server-project/
├── .gitignore # Archivo de exclusión para Git
├── LICENSE.md # Licencia del proyecto
├── README.md # Documentación del proyecto
├── lib/ # Dependencias externas
│ ├── derby.jar # Motor principal de Apache Derby
│ └── derbyshared.jar # Clases compartidas de Derby
├── src/ # Código fuente principal
│ └── com/
│ └── fidespn/
│ ├── main/ # Punto de entrada de la aplicación
│ │ └── MainApp.java
│ ├── backend/ # Servidor backend con Derby
│ │ ├── DerbyUtil.java
│ │ └── ServerApp.java
│ ├── client/ # Adaptadores de cliente
│ │ ├── net/
│ │ │ └── SocketClient.java
│ │ └── adapters/
│ │ ├── SocketUserClient.java
│ │ └── SocketMatchClient.java
│ ├── model/ # Modelos de datos
│ │ ├── Administrator.java
│ │ │ ├── Chat.java
│ │ ├── ChatMessage.java
│ │ ├── Correspondent.java
│ │ ├── Fanatic.java
│ │ ├── Match.java
│ │ ├── MatchEvent.java
│ │ ├── Player.java
│ │ ├── Team.java
│ │ └── User.java
│ ├── service/ # Lógica de negocio
│ │ ├── exceptions/
│ │ │ ├── DuplicateUsernameException.java
│ │ │ ├── InvalidCredentialsException.java
│ │ │ ├── MatchNotFoundException.java
│ │ │ ├── TeamNotFoundException.java
│ │ │ └── UserNotFoundException.java
│ │ ├── MatchManager.java
│ │ ├── ReportService.java
│ │ ├── StatisticsService.java
│ │ └── UserManager.java
│ └── view/ # Interfaces de usuario
│ ├── AdminDashboardFrame.java
│ ├── CorrespondentDashboardFrame.java
│ ├── FanaticDashboardFrame.java
│ ├── LiveMatchFrame.java
│ ├── LoginFrame.java
│ ├── RegisterFrame.java
│ ├── ForgotPasswordDialog.java
│ ├── TrayNotifier.java
│ └── ManageFavoriteTeamsFrame.java
├── data/ # Base de datos Derby (generada automáticamente)
│ └── fidespn/ # Archivos de Derby
└── bin/ # Clases compiladas (generadas automáticamente)
Contiene la clase principal MainApp.java que:
- Inicia la aplicación en el Event Dispatch Thread (EDT)
- Configura los managers de usuarios y partidos
- Crea usuarios de prueba automáticamente
- Inicializa datos de demostración
Contiene el servidor backend:
- ServerApp: Servidor principal que escucha conexiones de clientes
- DerbyUtil: Utilidad para inicializar y conectar con la base de datos Derby
Contiene adaptadores para comunicación cliente-servidor:
- SocketClient: Clase base para comunicación por sockets
- SocketUserClient: Adaptador para operaciones de usuario (login, registro, etc.)
- SocketMatchClient: Adaptador para operaciones de partidos y equipos
Define todas las entidades del sistema:
- User: Clase abstracta base para todos los usuarios
- Administrator/Correspondent/Fanatic: Implementaciones específicas de usuario
- Match: Representa un partido con todos sus datos y eventos
- Team: Información de equipos participantes con banderas
- Chat/ChatMessage: Sistema de mensajería en tiempo real
- MatchEvent: Eventos durante un partido (goles, tarjetas, faltas)
- Player: Información de jugadores
Contiene la lógica de negocio:
- UserManager: Gestión completa de usuarios, autenticación, registro, actualización
- MatchManager: Gestión de partidos, equipos, eventos, chats y persistencia
- exceptions: Excepciones personalizadas para manejo de errores específicos
Interfaces gráficas de usuario modernas:
- LoginFrame: Pantalla de inicio de sesión con diseño moderno
- AdminDashboardFrame: Dashboard completo para administradores
- CorrespondentDashboardFrame: Dashboard especializado para corresponsales
- FanaticDashboardFrame: Dashboard personalizado para fanáticos
- LiveMatchFrame: Ventana para seguimiento de partidos en vivo
- ManageFavoriteTeamsFrame: Gestión de equipos favoritos
- Model: Entidades de datos en el paquete
model - View: Interfaces gráficas en el paquete
view - Controller: Lógica de negocio en el paquete
service
- Base de datos Apache Derby embebida
- Tablas relacionales para usuarios, equipos, partidos, eventos y chats
- Carga automática al inicio de la aplicación
- Guardado automático tras cada operación
- Excepciones personalizadas para cada tipo de error
- Validación de datos de entrada
- Mensajes de error informativos para el usuario
- Diseño moderno con colores profesionales
- Tipografía Inter para mejor legibilidad
- Componentes Swing personalizados
- Navegación intuitiva entre ventanas
- Bus de eventos con
PropertyChangeSupport - Notificaciones SystemTray para eventos y marcador
- Chat en vivo por partido
- Actualización de marcadores y eventos en tiempo real
- Java 8+: Lenguaje de programación principal
- Java Swing: Framework para interfaz gráfica
- Apache Derby: Base de datos embebida
- Java Sockets: Comunicación cliente-servidor
- Java Timer: Actualizaciones en tiempo real
- Arquitectura MVC: Separación de responsabilidades
- Git: Control de versiones
- Iniciar sesión con credenciales de administrador
- Acceder al dashboard de administración
- Gestionar usuarios, partidos y equipos
- Supervisar eventos y reportes
- Iniciar sesión con credenciales de corresponsal
- Acceder al dashboard de corresponsal
- Crear y gestionar partidos
- Reportar eventos en tiempo real
- Actualizar marcadores y estadísticas
- Iniciar sesión con credenciales de fanático
- Acceder al dashboard personalizado
- Gestionar equipos favoritos
- Ver partidos en vivo
- Participar en chats de partido
Para contribuir al proyecto:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crea un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE.md para más detalles.
Para preguntas o soporte, contacta al equipo de desarrollo de FidESPN United 2026.
Versión: 4.0 (Client-Server)
Última actualización: Agosto 2025
Estado: Sistema cliente-servidor completo con Derby