# Análisis de Requisitos del Sistema (OnAPB)

En base a la imagen `requerimientos.jpeg` y la inspección del código fuente actual, aquí está el detalle de qué puntos cumple el sistema, cuáles faltan por desarrollar, y cuáles dependen exclusivamente de la presentación oral.

## ✅ Requisitos Cumplidos (Implementados en Software)

| Punto | Descripción | Estado en el Sistema |
| :---: | :--- | :--- |
| **1** | **Innovación** | **Cumple.** La implementación de un sistema de códigos QR digitales para el acceso a eventos y manejo de "Pases" de jugadores digitaliza procesos típicamente manuales o en papel. |
| **2** | **Investigación durante el desarrollo** | **Cumple.** Se evidencia el uso del framework Laravel 11, sistema de autenticación custom (aficionados/jugadores/admin), y estructuración de base de datos relacional. |
| **6** | **Justificación de Ingeniería de Software** | **Cumple.** El sistema utiliza un patrón arquitectónico claro (MVC provisto por Laravel), ORM (Eloquent), migraciones de base de datos y un enrutamiento ordenado. |
| **7** | **Conocimiento del negocio** | **Cumple.** El software modela perfectamente la lógica de una asociación de básquet: Clubes, Equipos, Jugadores, pases interclubes, categorías por edad y gestión de aforos de QRs por partido. |
| **9** | **Completitud de software** | **Parcialmente Cumplido.** El sistema tiene paneles de usuario y admin muy completos (fases 1 a 5 de la Hoja de Ruta). Sin embargo, la **Fase 6 (Pagos con Banco Macro)** está pendiente. |

---

## ❌ Requisitos Faltantes (Deuda Técnica a Resolver)

| Punto | Descripción | Lo que falta hacer |
| :---: | :--- | :--- |
| **8** | **Pruebas y errores, end-to-end** | **FALTA.** La carpeta `tests/` está vacía (solo tiene el test de ejemplo de Laravel). No hay pruebas unitarias (PHPUnit) ni pruebas de integración o E2E (Laravel Dusk) configuradas ni ejecutadas. |
| **10** | **Recuperación ante fallos/desastres** | **FALTA.** No hay un sistema de copias de seguridad de la base de datos (ej. Laravel Backup). Además, los modelos actuales **no usan SoftDeletes**, por lo que si un admin elimina un equipo, jugador o evento, los datos **se pierden permanentemente** (Hard Delete) y pueden romper relaciones. |
| **13** | **Documentación Técnica y de Usuario** | **FALTA.** El archivo `README.md` del repositorio es el que viene por defecto con Laravel original en inglés. La `HOJA-DE-RUTA.md` es solo un checklist. Se necesita redactar un manual de usuario (ej: cómo usar el panel admin) y un manual técnico (cómo instalar el proyecto, variables de entorno, esquema de BD). |

---

## 🗣️ Requisitos que NO dependen del software (Evaluación Oral/Grupal)

Estos puntos no se programan, sino que se evaluarán durante la defensa del proyecto:

* **3 - Tiempo/dedicación en finalizar.** (Se demuestra presentando el volumen de trabajo hecho, que es bastante amplio).
* **4 - Exposición oral.**
* **5 - Evaluación de dinámica grupal.**
* **11 - Revisiones de procesos y sugerencias por parte de los profesionales.** (Conclusiones del grupo).
* **12 - Pruebas y errores durante la exposición (datos reales).** (Asegúrense de tener la base de datos poblada con clubes, jugadores y eventos reales o realistas el día de la presentación).

---

### 🚀 Siguientes pasos recomendados para aprobar:
1. Reemplazar el `README.md` por documentación real técnica y de usuario.
2. Añadir `SoftDeletes` a las tablas críticas (`jugadores`, `clubes`, `equipos`, `eventos`) para cumplir el Punto 10.
3. Escribir al menos 3 o 4 Tests básicos (Feature tests) simulando el login y la emisión de QRs para cubrir el Punto 8.
