Ciclo Formativo de Grado Superior

Desarrollo de Aplicaciones Web

I.E.S. «Venancio Blanco» SALAMANCA

Logotipo Venancio

TUTOR

Serafina Martín Marcos

AUTOR

Iván Martín Nieto

Licencia

Esta obra está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de la licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envíe una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Índice de Contenido

  1. Introducción y Justificación
  2. Definición del Sistema
  3. Diseño Tecnológico y Arquitectura
  4. Planificación y Metodología
  5. Desarrollo e Implementación
  6. Pruebas y Control de Calidad
  7. Conclusiones y Futuro
  8. Referencias y bibliografía
  9. Glosario de Términos y Acrónimos
  10. Anexos

Índice de Figuras

Índice de Tablas

1. Introducción y Justificación

1.1. Memoria Inicial

Aplicación web centrada en la gestión del club de atletismo Ianuarius, de forma que se digitalice su gestión.

En cualquiera de los casos, cabe destacar que el proyecto ha sido ampliamente pensado para el club homónimo al título de este, por lo que, para otros clubes, cabría la posibilidad de que haya funciones insuficientes o que, por el contrario, haya un exceso de estas.

1.2. Justificación

Por otra parte, gracias a esta transición al mundo digital, permitirá añadir funcionalidades que, en un entorno físico, sin esta aplicación, serían muy costosos, complicados o incluso imposibles de llevar a cabo, sobre todo teniendo en cuenta el gran número de atletas pertenecientes al club, de los cuales, su gran mayoría son menores, o lo suficientemente pequeños como para no estar capacitados para manejarse por sí mismos.

1.3. Oportunidad de Negocio

En cuanto a la oportunidad de negocio, este proyecto nace de la observación directa de una carencia tecnológica en el ámbito deportivo local. Los clubes de atletismo modestos no disponen de presupuestos holgados para contratar plataformas de gestión genéricas de alto coste. Además, la gran mayoría de estas plataformas están orientadas a deportes de equipo (como el fútbol o el baloncesto), obviando las necesidades específicas del atletismo: gestión de grandes volumenes de inscripciones individuales, control de marcas personales, categorías por edades muy acotadas y la burocracia específica de las federaciones (seguros médicos e impresos oficiales).

Ianuarius se presenta como una oportunidad de negocio orientada a cubrir este nicho: un software vertical, específico para atletismo, de bajo coste, evitando sistemas de suscripción y, centrado en resolver el "cuello de botella" burocrático de las inscripciones de menores de edad.

1.4. Estudio del Sector

Para evaluar la viabilidad y necesidad del proyecto, se ha realizado un análisis de las principales soluciones de software de gestión deportiva existentes en el mercado actual:

1.4.1. Clupik

Es una plataforma centrada fundamentalmente en la gestión de competiciones. Permite a los usuarios inscribirse en eventos deportivos, hacer un seguimiento de los mismos y, a nivel de administración, crear y organizar dichos torneos. Sin embargo, no está diseñada para cubrir la gestión burocrática interna del día a día de un club modesto. Carece de herramientas para la gestión de un club de atletismo (independientemente de sus dimensiones)

1.4.2. Playoff Informática

Es uno de los sistemas más potentes y consolidados. Permite la gestión de recibos y remesas bancarias con gran eficacia. El problema radica en que es una herramienta sobredimensionada ("overkill"); ofrece cientos de funcionalidades que un club modesto jamás usará, generando una curva de aprendizaje muy pronunciada para los entrenadores y padres y aumentando inecesariamente el precio del servicio al estar pagando funciones no utiles para el caso de un club pequeño de atletismo.

1.4.3. Necesidades reales no cubiertas (El hueco de Ianuarius)

Tras este análisis, se concluye que el sector adolece de una herramienta que satisfaga las siguientes demandas clave del Club Ianuarius:

  • Generación automatizada de burocracia: Ninguna de las alternativas genera de forma automática el PDF oficial de inscripción requerido por la Federación combinando los datos del usuario.

  • Seguimiento de sensaciones: Falta de un módulo sencillo donde el atleta pueda registrar su "feedback" post-entrenamiento en la pista.

  • Accesibilidad económica: Inexistencia de un sistema de bajo mantenimiento adaptado a la realidad financiera de los clubes pequeños.

1.5. Análisis de Viabilidad

1.5.1. Viabilidad Técnica

El proyecto es viable técnicamente dado que se desarrollará utilizando tecnologías sólidas y ampliamente documentadas (React, PHP 8.2 y MySQL 8.0). Sin embargo, al tratarse de un sistema que gestionará datos personales y fichas médicas de atletas (en su gran mayoría menores de edad), la viabilidad no solo reside en la capacidad de programación, sino en garantizar el estricto cumplimiento del RGPD y la LOPDGDD.

Para garantizar esta seguridad técnica, la aplicación se alojará en servidores ubicados dentro del Espacio Económico Europeo (EEE). Las contraseñas de los usuarios se almacenarán cifradas mediante funciones de hash. Respecto a los documentos altamente sensibles (como los PDF de las inscripciones generados y los escaneos de los DNI), se implementará un sistema de control de acceso en el backend (PHP). Los archivos se guardarán en directorios privados del servidor sin acceso público directo por URL, de forma que el sistema verificará primero el rol y la sesión del usuario antes de servir la descarga del documento.

1.5.2. Viabilidad Económica (Estimación de Costes)

Aunque el proyecto se desarrolla en un ámbito académico, a continuación se presenta una estimación del presupuesto como si se tratase de un encargo profesional para el Club Atletismo Ianuarius. Adicionalmente, se han calculado los costes periodicos necesarios para mantener el sistema en producción una vez finalizado el proyecto.

1.5.2.1. Costes de Hardware y Software
Concepto Descripción Coste Estimado
HardwareAmortización de equipo informático.250,00 €
Software IDEVisual Studio Code, Obsidian.0,00 € (Free)
Entorno ServidorXAMPP (Apache, MySQL, PHP).0,00 € (Free)
Diseño / UIFigma (Plan gratuito), Tailwind CSS.0,00 € (Free)
Total Recursos250,00 €
1.5.2.2. Costes de Personal (Desarrollo)
Fase Horas Estimadas Coste (18 € / h)
Análisis y Diseño40 h720,00 €
Desarrollo Backend y BBDD50 h900,00 €
Desarrollo Frontend y Vistas40 h720,00 €
Pruebas y Documentación20 h360,00 €
Total Desarrollo150 h2.700,00 €
1.5.2.3. Costes de Mantenimiento Anual (Post-Desarrollo)
Concepto Descripción Coste Anual
DominioRegistro y renovación del dominio (ej. ianuarius.es).12,00 € / año
Hosting EEEServidor compartido avanzado o VPS básico en Europa.75,00 € / año
Certificado SSLLet's Encrypt para cifrado de datos (HTTPS).0,00 € (Free)
Total Mantenimiento Anual87,00 € / año

Presupuesto Inicial Total (Desarrollo + Recursos): 2.950,00 € (Impuestos no incluidos).

2. Definición del Sistema

2.1. Objetivos del Proyecto

Siguiendo los criterios SMART (Específico, Medible, Alcanzable, Relevante y Temporal), se definen a continuación los objetivos del proyecto.

2.1.1. Objetivo General

Concepto Descripción Análisis SMART
Propósito Principal Desarrollar una plataforma web integral para la digitalización de la gestión del Club Atletismo Ianuarius (inscripciones, fichas y seguimiento). S: Digitalizar integralmente el proceso de inscripción y creación de fichas para el 100% de los atletas o sus tutores legales.
M: Reducir el tiempo de gestión de las inscripciones manuales a menos de 3 minutos gracias a la vía digital.
A: Desarrollable e implementable mediante la conexión de un formulario dinámico en React con un generador de PDF en el backend (PHP).
R: Elimina por completo el uso de papel físico. Además, contempla y soluciona fricciones derivadas del factor humano y logístico: elimina la pereza o falta de tiempo para imprimir, esquiva las averías en impresoras domésticas, evita desplazamientos a copisterías y suprime los olvidos frecuentes de la inscripción física en casa o de las copias impresas del DNI.
T: Totalmente funcional y desplegado para el inicio de la temporada 2026-2027 (y utilizable de ahí en adelante).

2.1.2. Objetivos Funcionales

IDMóduloDescripciónJustificación SMARTPrio.
OBJ-01UsuariosRegistro, Login y distinción de roles (Admin, Entrenador, Atleta).S: Acceso seguro por credenciales.
M: 3 roles diferenciados.
T: Desarrollado entre la Semana 6 (Backend) y Semana 10 (Frontend).
Alta
OBJ-02FichasSubida de archivos escaneados para inscripciones físicas (legacy).S: Upload de PDF/JPG.
R: Soporte a inscripciones manuales.
T: Operativo en la Semana 8 (Módulo de protección de archivos).
Alta
OBJ-03FichasInscripción online con generación automática de PDF y envío por email.S: Formulario a PDF automático.
M: 0 errores de transcripción.
T: Completado en la Semana 12 (Integración).
Media
OBJ-04GestiónFiltros de búsqueda avanzada (Categoría, edad, prueba, marcas).S: Filtrado SQL dinámico.
T: Implementado entre la Semana 7 (Lógica servidor) y Semana 11 (Vistas).
Media
OBJ-05AtletasCalendario de eventos y feedback de entrenamientos (sensaciones).S: Calendario visual interactivo.
R: Seguimiento deportivo.
T: Integrado en la Semana 13 (Fase de validación).
Baja

2.2. Definición de Actores

ID: ACT-01Visitante
DescripciónUsuario no registrado que accede a la parte pública (portfolio informativo).
PermisosVisualizar información básica del club (plazos de fichas, horarios, periodos de entreno, etc.).
ID: ACT-02Atleta
DescripciónIntegrante del club registrado de forma oficial.
PermisosIniciar sesión, realizar inscripciones, acceder a su historial, editar inscripciones y registrar feedback de entrenamientos.
ID: ACT-03Entrenador (Administrador)
DescripciónMiembro del cuerpo técnico encargado de la gestión del club.
PermisosPermisos de Atleta + visualizar todas las fichas, filtrar atletas (edad, categoría) y consultar el calendario global.

2.3. Especificación Funcional

2.3.1. Diagrama de Casos de Uso

2.3.2. Especificación de Casos de Uso

UC-01Registro y Autenticación
ActorVisitante / Atleta / Entrenador
InterésCrear una cuenta o acceder de forma segura al sistema.
PrecondiciónPara registro: No tener cuenta. Para login: Tener cuenta verificada.
GarantíaSesión iniciada correctamente y acceso al panel.
Flujo Básico1. El usuario introduce credenciales o datos de registro.
2. El sistema valida la información en la BBDD.
3. El sistema concede acceso y redirige a la vista correspondiente.
Excepciones2.a Credenciales inválidas: El sistema muestra error.
2.b Olvido de clave: Se ejecuta la extensión Recuperar contraseña.
UC-02Realizar Inscripción Online
ActorAtleta (o Entrenador)
InterésCompletar la ficha digitalmente y generar el documento oficial.
PrecondiciónHaber iniciado sesión previamente (UC-01).
GarantíaDatos guardados e inclusión automática de Generar PDF Oficial.
Flujo Básico1. El usuario accede al formulario de nueva temporada.
2. Rellena o actualiza sus datos médicos y de contacto.
3. El sistema compila la información y genera el PDF automáticamente.
4. Se envía una copia al email del usuario.
Excepciones2.a Falta documento anexo: Se requiere ejecutar la extensión UC-03 (Subir archivo físico/DNI).
UC-03Subir Archivo Físico / DNI
ActorAtleta / Entrenador
InterésAdjuntar documentación obligatoria (DNI) o fichas antiguas escaneadas al sistema.
PrecondiciónHaber iniciado sesión y estar en el proceso de inscripción (UC-02) o edición de perfil.
GarantíaEl archivo se sube al servidor protegido y se vincula a la ficha del usuario.
Flujo Básico1. El usuario selecciona la opción de adjuntar documento.
2. El sistema solicita el archivo desde el dispositivo.
3. El usuario sube un archivo en formato JPG o PDF.
4. El sistema valida la extensión y el peso máximo.
5. El archivo se almacena de forma segura.
Excepciones4.a Formato o peso inválido: El sistema rechaza la subida y avisa de los requisitos.
UC-04Filtrar Fichas Globales
ActorEntrenador (Admin)
InterésBuscar y listar atletas según criterios deportivos o de edad.
PrecondiciónHaber iniciado sesión con rol de Administrador.
GarantíaListado de atletas actualizado según el criterio de búsqueda.
Flujo Básico1. El entrenador accede al panel global de gestión.
2. Selecciona los filtros deseados (ej. Categoría Sub-16).
3. El sistema consulta a la BBDD y devuelve los resultados ordenados.
Excepciones3.a Ningún resultado: El sistema avisa de que no hay atletas en esa categoría.
UC-05Registrar Feedback Entrenos
ActorAtleta
InterésAnotar sensaciones y estado físico tras una sesión en pista.
PrecondiciónHaber iniciado sesión (UC-01).
GarantíaEl registro queda guardado en el historial deportivo del atleta.
Flujo Básico1. El atleta entra en su área personal (Gestionar perfil e historial).
2. Accede al apartado de feedback.
3. Rellena el formulario de sensaciones.
4. El sistema guarda la entrada en la base de datos.
Excepciones3.a Formulario incompleto: El sistema pide rellenar los campos obligatorios.

2.4. Requisitos del Sistema (SRS)

2.4.1. Requisitos Funcionales (RF)

IDFunciónDescripción DetalladaActorCUPrio.
RF-01RegistroEl sistema permitirá crear una cuenta validando el email.VisitanteUC-01Alta
RF-02LoginEl sistema verificará credenciales contra la BBDD y asignará la sesión.Atleta/AdminUC-01Alta
RF-03InscripciónEl sistema generará un PDF automático a partir de los datos.AtletaUC-02Alta
RF-04Subida PDFEl sistema permitirá adjuntar archivos físicos escaneados (JPG/PDF).AtletaUC-03Media
RF-05FiltrosEl sistema ordenará las fichas por categoría, fecha o edad.AdminUC-04Media
RF-06Generación PDFEl sistema generará ficha de inscripción en PDF en base a los datos aportados.AtletaUC-03Baja

2.4.2. Requisitos No Funcionales (RNF)

IDTipoDescripción y Métrica
RNF-01SeguridadLas contraseñas se almacenarán cifradas mediante hash en la BBDD.
RNF-02RendimientoLa generación del PDF de inscripción habría de tardar menos de 5000ms.
RNF-03DisponibilidadEl sistema será responsivo (Mobile First) para uso en pistas de atletismo.

2.4.3. Requisitos de Información (IRQ)

ID: IRQ-01Información de Usuarios y Fichas
DescripciónEl sistema debe almacenar permanentemente los datos de registro e inscripción.
Datos• ID Usuario (PK)
• Nombre, Apellidos, DNI, Email (Único), Contraseña (Hash)
• Rol (Atleta o Entrenador/Admin)
• Ruta del PDF generado

2.5. Normativa y Legislación

Debido a que el sistema gestiona inscripciones de atletas (en su mayoría menores) y realiza un seguimiento de sus entrenamientos, el cumplimiento normativo es estricto:

  • - RGPD y LOPDGDD: Los datos se alojarán en servidores del EEE. Se requerirá consentimiento verificable de tutores legales para menores de 14 años.

  • - Derecho al olvido: Se podrá solicitar la eliminación de datos una vez el atleta inscrito abandone el club.

  • - LSSI-CE y Accesibilidad: Se incluirá un Aviso Legal con los datos del club. Se buscará cumplir con el nivel AA de las directrices WCAG 2.1.

  • - Licencias: Tecnologías libres (HTML, CSS, PHP, MySQL), Tailwind CSS (MIT) y librerías de generación de PDF (MIT/GPL).

3. Diseño Tecnológico y Arquitectura

3.1. Stack Tecnológico

Para el desarrollo de Ianuarius se ha seleccionado una arquitectura moderna separando el cliente del servidor, garantizando así una experiencia de usuario fluida y un mantenimiento seguro. Las tecnologías elegidas son las siguientes:

Logo React

Frontend (Interfaz de usuario): React 18 y Tailwind CSS

Se empleará React (versión 18) junto con el framework de estilos Tailwind CSS. Se elige esta librería frente a un enfoque tradicional con PHP nativo para evitar interfaces estáticas. React permite desarrollar una aplicación web dinámica, fluida y con una experiencia de usuario superior, comportándose como una "Single Page Application" (SPA).

Logo PHP

Backend (Lógica y Servidor): PHP 8.2

Se utilizará PHP en su versión 8.2. Se encargará de gestionar la lógica de negocio, la seguridad (protección de directorios), la autenticación y la creación de una API REST que se comunicará de forma asíncrona con el Frontend mediante formato JSON.

Logo MySQL

Base de Datos: MySQL 8.0

Se implementará MySQL (versión 8.0) para garantizar la persistencia de los datos estructurados y mantener la integridad relacional estricta entre los usuarios (atletas/entrenadores) y sus fichas médicas e inscripciones.

3.2. Arquitectura del Software

El sistema Ianuarius se ha diseñado bajo un modelo de arquitectura Cliente-Servidor estructurado en dos capas totalmente desacopladas. Esta separación de responsabilidades permite un mantenimiento más ágil, una mayor seguridad y una mejor escalabilidad del proyecto a futuro.

Modelo de Comunicación y API REST

La interacción entre la interfaz de usuario y el servidor se realiza mediante una API REST (Application Programming Interface), desarrollada íntegramente en PHP. El ciclo de vida de una petición típica en la aplicación sigue estos cuatro pasos fundamentales:

  • 1º. Interacción (Frontend): La aplicación interactiva construida en React captura las acciones del usuario (por ejemplo, enviar el formulario de una nueva inscripción o solicitar el listado de atletas).

  • 2º. Petición Asíncrona: React utiliza la API nativa "fetch" (o la librería Axios) para enviar una petición HTTP (GET, POST, PUT o DELETE) al servidor. Al ser una SPA (Single Page Application), esto ocurre en segundo plano sin necesidad de recargar la página del navegador.

  • 3º. Procesamiento (Backend): El servidor PHP recibe la petición HTTP, valida los permisos de seguridad y el rol del usuario, ejecuta la lógica de negocio correspondiente y realiza las consultas necesarias a la base de datos MySQL.

  • 4º. Respuesta (JSON): PHP devuelve al cliente la información solicitada empaquetada en un objeto de formato JSON. React intercepta esta respuesta y actualiza el DOM (la pantalla) de forma reactiva para mostrar los resultados al usuario.

Seguridad en la Arquitectura

Para garantizar el cumplimiento de la normativa de protección de datos (RGPD), la arquitectura se blinda en el lado del servidor. Las rutas de la API en PHP comprueban activamente las credenciales mediante el uso de sesiones o tokens de autenticación antes de servir cualquier archivo o dato sensible (como los PDF oficiales generados o las marcas deportivas), impidiendo el acceso no autorizado mediante la manipulación de las URL en el Frontend.

3.3. Diseño de Datos

Para estructurar la persistencia de la información en la base de datos MySQL, se ha diseñado un Modelo Entidad-Relación altamente normalizado. Para gestionar la complejidad de las especialidades del atletismo (donde las alturas o pesos varían según la edad y el género), se ha implementado una tabla intermedia de detalle. El sistema se compone de seis tablas principales:

3.3.1. Tabla: categorias

Catálogo maestro que define los rangos de edad (ej. Sub-16, Sub-18).

CampoTipoRestriccionesDescripción
id_categoriaINTPK, AUTO_INCREMENTIdentificador único.
nombreVARCHAR(50)NOT NULLNombre (ej. 'Sub-16').
edad_minINTNOT NULLEdad mínima para pertenecer.
edad_maxINTNOT NULLEdad máxima para pertenecer.

3.3.2. Tabla: pruebas

Catálogo maestro de las disciplinas generales de atletismo.

CampoTipoRestriccionesDescripción
id_pruebaINTPK, AUTO_INCREMENTIdentificador único.
nombre_pruebaVARCHAR(50)NOT NULLEj: '100m', 'Lanzamiento Peso'.
tipoENUMNOT NULL'Carrera', 'Salto' o 'Lanzamiento'.

3.3.3. Tabla: pruebas_variantes

Tabla de detalle que resuelve la relación N:M entre Pruebas y Categorías, añadiendo especificaciones técnicas.

CampoTipoRestriccionesDescripción
id_varianteINTPK, AUTO_INCREMENTIdentificador único.
id_pruebaINTFKPrueba base asociada.
id_categoriaINTFKCategoría a la que aplica.
genero_aplicableENUMNOT NULL'M', 'F' o 'Ambos'.
especificacionesVARCHAR(100)NULLEj: '0.84m', '4kg', etc.

3.3.4. Tabla: usuarios

Almacena las credenciales de acceso y datos personales, perfilando al atleta.

CampoTipoRestriccionesDescripción
id_usuarioINTPK, AUTO_INCREMENTIdentificador único.
id_categoriaINTFKCategoría actual del atleta.
nombreVARCHAR(50)NOT NULLNombre de pila.
apellidosVARCHAR(100)NOT NULLApellidos del usuario.
dniVARCHAR(9)UNIQUEDocumento de identidad.
emailVARCHAR(100)UNIQUE, NOT NULLCorreo electrónico.
password_hashVARCHAR(255)NOT NULLContraseña cifrada.
rolENUMDEFAULT 'atleta''Admin' o 'Atleta'.
fecha_nacimientoDATENOT NULLPara cálculo de categoría.
generoENUMNOT NULL'M' o 'F'.

3.3.5. Tabla: fichas_inscripcion

Almacena los documentos. Relación 1:1 con la tabla usuarios.

CampoTipoRestriccionesDescripción
id_fichaINTPK, AUTO_INCREMENTIdentificador de la ficha.
id_usuarioINTFK, UNIQUEEnlace al usuario propietario.
ruta_pdfVARCHAR(255)NULLRuta del PDF generado.
ruta_dniVARCHAR(255)NULLRuta del DNI escaneado.
fecha_creacionTIMESTAMPDEFAULT CURRENT_TIMESTAMPFecha de generación.

3.3.6. Tabla: feedback_entrenamientos

Registra las sensaciones diarias. Relación 1:N con la tabla usuarios y pruebas_variantes.

CampoTipoRestriccionesDescripción
id_feedbackINTPK, AUTO_INCREMENTIdentificador del registro.
id_usuarioINTFKAtleta que entrena.
id_varianteINTFKPrueba específica entrenada.
fechaDATENOT NULLDía de la sesión.
sensacionesTEXTNULLComentarios del rendimiento.

3.4. Diseño de Interfaz (UI/UX)

El diseño de la interfaz se ha planteado bajo el paradigma Mobile First, garantizando que la aplicación web sea plenamente funcional y accesible desde dispositivos móviles, dado que los atletas y entrenadores la utilizarán frecuentemente a pie de pista durante los entrenamientos.

3.4.1. Paleta de Colores

Se definirá una paleta cromática basada en la identidad corporativa del Club de Atletismo Ianuarius, priorizando el contraste y la legibilidad para entornos con mucha luz (exteriores):

  • - Color Principal (Identidad Club): Rojo Ianuarius (#E63946) - Se reserva para los botones de acción principal (como enviar inscripciones), enlaces destacados y elementos de marca.

  • - Colores Neutros: Escala de grises (desde #F8F9FA para fondos hasta #212529 para textos principales) para estructurar el contenido sin fatigar la vista.

  • - Colores de Estado: Verde (#2A9D8F) para alertas de éxito (feedback guardado, PDF generado) y Naranja (#F4A261) para advertencias o campos incompletos.

3.4.2. Tipografía

Se emplea la familia tipográfica Inter, nativa en entornos web modernos e incluida a través de Tailwind CSS. Destaca por su legibilidad en pantallas pequeñas y su aspecto limpio y profesional, ideal para la lectura densa de tablas de marcas deportivas y listados de atletas.

3.4.3. Prototipado y Experiencia de Usuario (UX)

El diseño de las vistas principales (Wireframes) se plantea utilizando la herramienta Figma, con el objetivo de estructurar visualmente la interfaz y definir los flujos de navegación de cara a la codificación final de los componentes. Esta conceptualización se centra especialmente en procesos críticos como la inscripción o la subida documental, buscando reducir la fricción cognitiva mediante formularios guiados paso a paso y asegurando que la plataforma resulte intuitiva tanto para jóvenes atletas como para sus tutores legales.

4. Planificación y Metodología

4.1. Metodología de Trabajo

Para la ejecución de la plataforma Ianuarius, se ha optado por una Metodología Ágil basada en un modelo Scrum adaptado a un único desarrollador.

4.1.1. Desarrollo iterativo e incremental:

Permite tener versiones funcionales desde las primeras semanas, añadiendo módulos de forma progresiva.

4.1.2. Herramientas de gestión:

Se utilizará un tablero tipo Kanban (GitHub Projects) dividido en las columnas básicas: Backlog, In Progress, Testing y Done.

4.2. Planificación Temporal (Gantt)

El desarrollo se ha planificado en un bloque temporal de 15 semanas. Se ha optado por solapar parcialmente las fases de Backend y Frontend para optimizar el tiempo de integración.

FaseTarea PrincipalDuraciónSemanas
1. AnálisisDefinición de actores, Casos de Uso y Requisitos.2 semanas1 – 2
2. DiseñoDiseño de BBDD, arquitectura y prototipos visuales.2 semanas3 – 4
3. BackendDesarrollo MySQL, PHP 8.2, API REST.4 semanas5 – 8
4. FrontendMaquetación responsiva con React y Tailwind.4 semanas6 – 9
5. IntegraciónUnificación API y Vistas Front.3 semanas10 – 12
6. PruebasTests de validación y corrección de bugs.2 semanas13 – 14
7. EntregaRedacción de memoria final y defensa.1 semana15

4.3. Guion de Trabajo

A continuación se detalla el "Roadmap" del proyecto, desglosando las fases de la planificación temporal en tareas técnicas específicas y asignadas por semanas, para garantizar un seguimiento exhaustivo del desarrollo:

Fase 1: Análisis y Diseño (Semanas 1 - 4)

  • Semana 1-2: Toma de requisitos, análisis de competencia y elaboración de diagramas de Casos de Uso.

  • Semana 3: Diseño del modelo Entidad-Relación y creación de los esquemas relacionales (MySQL).

  • Semana 4: Elaboración de wireframes y maquetado visual de la interfaz de usuario en Figma.

Fase 2: Backend y Base de Datos (Semanas 5 - 8)

  • Semana 5: Configuración del entorno (XAMPP), despliegue de la BBDD e implementación de la librería FPDF/TCPDF para la futura generación de documentos.

  • Semana 6: Desarrollo de la API REST (PHP 8.2) y creación de los endpoints básicos (Registro, Login) con cifrado de contraseñas.

  • Semana 7: Programación de la lógica de filtros de marcas deportivas y categorías por edades en el servidor.

  • Semana 8: Desarrollo del módulo de control de acceso y protección de directorios para los archivos PDF de los atletas (cumplimiento RGPD).

Fase 3: Frontend e Integración (Semanas 9 - 12)

  • Semana 9: Inicialización del proyecto en React 18, configuración del enrutamiento y aplicación de Tailwind CSS.

  • Semana 10: Maquetación de los paneles de control (dashboard del Entrenador y vista del Atleta).

  • Semana 11: Conexión asíncrona (Fetch/Axios) entre el Frontend y la API REST para el intercambio de datos JSON.

  • Semana 12: Integración del formulario dinámico de inscripciones con el generador de PDF del backend.

Fase 4: Pruebas y Despliegue (Semanas 13 - 15)

  • Semana 13: Ejecución de pruebas unitarias en formularios y validación de seguridad en la subida de archivos (DNI/Fotos).

  • Semana 14: Resolución de errores (testing continuo).

  • Semana 15: Despliegue en el servidor de producción (hosting), redacción final de los manuales y preparación de la defensa.

5. Desarrollo e Implementación

5.1. Organización real del trabajo

(Pendiente de redactar durante la fase de programación)

5.2. Estructura del Proyecto

(Próximos Entregables)

5.3. Aspectos relevantes de la codificación

(Próximos Entregables)

5.4. Despliegue

(Próximos Entregables)

6. Pruebas y Control de Calidad

6.1. Plan de Pruebas

(Próximos Entregables)

6.2. Registro de Incidencias

(Próximos Entregables)

6.3. Validación de Requisitos

(Próximos Entregables)

7. Conclusiones y Futuro

7.1. Grado de cumplimiento de objetivos

(Próximos Entregables)

7.2. Dificultades y aprendizaje personal

(Próximos Entregables)

7.3. Posibles mejoras y líneas futuras del proyecto

(Próximos Entregables)

8. Referencias y bibliografía

A continuación se detallan las herramientas, recursos y fuentes de información utilizadas para el desarrollo y documentación de este proyecto:

  • Mermaid Live Editor: Herramienta web utilizada para la generación del Diagrama de Clases UML mediante renderizado de código. Disponible en: https://mermaid.live/

9. Glosario de Términos y Acrónimos

Este apartado define los conceptos técnicos y las siglas utilizadas a lo largo de la memoria para garantizar su correcta interpretación.

Término / AcrónimoDefinición
API(Application Programming Interface) Interfaz que permite que dos aplicaciones se comuniquen entre sí para intercambiar datos.
BackendParte de la aplicación que se ejecuta en el servidor y gestiona la lógica de negocio y la base de datos.
CRUD(Create, Read, Update, Delete) Acrónimo de las cuatro funciones básicas de la gestión de datos.

10. Anexos

10.1. Manual de instalación

10.2. Manual de usuario

10.3. Documentación complementaria

10.4. Anexos Técnicos