Futbolovich

Job ID: 39700945

Budget: $250 – $750 USD

Crea una aplicación web completa para la gestión de una liga de fútbol amateur. La web debe ser responsive, con una interfaz moderna, agradable e intuitiva, y debe funcionar sin errores tanto en PC como en dispositivos móviles.

La aplicación debe diseñarse con una arquitectura backend que priorice la facilidad de mantenimiento y la escalabilidad. Considerando la preferencia por un framework robusto y la experiencia en SQL, se recomienda utilizar Python con el framework Django debido a su simplicidad, seguridad integrada y excelente gestión de bases de datos. El frontend debe construirse con HTML, CSS/Tailwind y JavaScript.

Perfiles de Usuario

La web debe tener tres roles principales con sus respectivas funcionalidades:



Administrador:

Gestión de Torneos: Crear, editar, y eliminar torneos. Para cada torneo, se deben gestionar: nombre, año, fechas de inicio y fin, tipo de torneo (liguilla o eliminación con fase de grupos), y la cantidad de equipos.

Gestión de Equipos y Jugadores:

Equipos: Crear un equipo con nombre, fecha de creación, director, subdirector y logo.

Jugadores: Gestionar altas de jugadores con nombre, apellido, estatura, posiciones, pie fuerte (zurdo, derecho, ambidiestro) y número de camiseta.

Sanciones: Reportar resultados de partidos y cargar sanciones por acumulación de tarjetas, rojas directas o suspensiones por otros motivos.

Traspasos: Aprobar o rechazar solicitudes de intercambio de jugadores, especialmente si el torneo está en curso.

Contenido: Cargar fotos y videos a una galería, organizándolos por torneo, año, partido y equipo.

Reglamento: Subir y gestionar el reglamento de la liga, que puede ser un documento PDF y/o un texto dinámico.

Finanzas: Gestionar la consulta de pagos de los equipos (no la transacción).

Director de Equipo:

Gestión de Equipo:

Cargar fotos de su equipo y jugadores.

Ver la lista de miembros, sus estadísticas y sus sanciones.

Editar roles de jugadores (ej: capitán).

Cargar lesiones de jugadores.

Traspasos: Iniciar solicitudes de intercambio de jugadores, siempre que no se esté disputando un torneo en ese momento o haya una autorización de la administración.

Informes: Generar reportes con estadísticas del equipo y el historial de partidos.

Sanciones: Consultar las sanciones de su equipo y las de toda la liga.

Jugador:

Gestión de Perfil: Ver sus estadísticas personales (goles, asistencias, partidos jugados, tarjetas, sanciones).

Datos Personales: Editar su información personal (excepto equipo y nacionalidad). La información de registro inicial no será obligatoria, pero se podrá completar en el perfil.

Fichajes: Enviar solicitudes para ser fichado por un equipo.



Secciones de la Web

La web debe incluir las siguientes secciones principales:



Inicio: Página principal con las noticias más relevantes y próximos partidos.

Acerca de la Liga: Información general de la liga.

Divisiones: Sección para visualizar las divisiones. Inicialmente habrá una, pero el sistema debe ser escalable para manejar múltiples divisiones con reglas de ascenso y descenso (promoción y repechaje).

Reglamento: Sección para ver el reglamento.

Sponsors y Beneficios: Apartado con los logos, descripciones y enlaces de los patrocinadores.

Galería: Secciones para fotos y videos.

Noticias: Sistema de blog para publicar noticias con texto e imágenes.

Área de Equipos: Espacio dedicado a cada equipo para su autogestión.

Gestiones Administrativas: Área protegida por rol de usuario para que los administradores realicen sus tareas.

Métodos de Pago: Apartado con la información de la cuenta bancaria de la liga para que los equipos realicen sus pagos.



Consideraciones Clave

Responsive: La interfaz debe adaptarse fluidamente a todos los tamaños de pantalla.

Stack: Utilizar Django (Python) para el backend, y HTML/CSS/JavaScript con Tailwind CSS para el frontend. La experiencia en SQL será una gran ventaja para el manejo del ORM de Django.

Escalabilidad: El sistema debe diseñarse para soportar al menos tres divisiones con 20 equipos cada una, y con la capacidad de crecer sin una refactorización mayor.

Mantenimiento: El código debe ser limpio y modular, siguiendo las mejores prácticas de Django, para que sea fácil de mantener por programadores con conocimientos intermedios.

Datos de Partidos: Para cada partido, se debe gestionar: fecha, cancha, equipos, resultado, goleadores, asistencias, tarjetas, sanciones, alineaciones, cambios y un campo para comentarios generales.

Registros de Usuarios: El registro inicial para directores y jugadores debe ser simple, sin campos obligatorios.
Related categories: Website Design CSS MySQL HTML Website Management Web Hosting