Futbolovich
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.
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.