FastPlay logo
FastPlay
v3.0.0
Volver al Inicio
Arquitectura Web · Entorno Académico

Futbol Amateur
Organizado.

"El puente definitivo entre la pachanga improvisada de barrio y las ligas organizadas."

Fastplay es una aplicación web interactiva desarrollada para capitanes y jugadores de fútbol amateur en Ceuta. Permite estructurar equipos, organizar partidos amistosos, inscribirse en ligas, y llevar un registro pormenorizado de las estadísticas del plantel eliminando la fricción tradicional.

Ceuta
Foco Geográfico
231
Tests PHPUnit
100%
Vanilla Stack
Fastplay Football Stadium
Estadio digitalizado de Fastplay
Campo de Ceuta
Campos reales integrados en la base de datos de Ceuta
Concepto & Foco

La Idea: Resolver el caos.

Tradicionalmente, las pachangas de fin de semana se coordinan a través de cadenas interminables de WhatsApp y hojas de cálculo. Fastplay centraliza este proceso y eleva el nivel de juego amateur en la Ciudad Autónoma de Ceuta.

Liga Amistosa (Free)

Inscripción gratuita. Permite negociar partidos en directo entre capitanes de equipo, pactando la fecha, el campo, y las reglas del encuentro.

Liga Pro (Premium)

Modelo de suscripción integrado con Stripe. Acceso a calendario oficial estructurado por la administración, árbitros colegiados y premios físicos.

Estadios Locales

Carga de los principales campos de Ceuta (Alfonso Murube, Emilio Cózar, Benoliel, Pirri, etc.) con sus correspondientes localizaciones en mapas interactivos.

Convocatorias

Control del plantel de juego: capitanes definen titulares y suplentes, mientras los jugadores confirman su disponibilidad directamente.

Arquitectura Lógica

Backend robusto, sin dependencias.

Para demostrar dominio en el desarrollo de aplicaciones web complejas, Fastplay evita el uso de frameworks pesados (como Laravel o Symfony), construyendo un núcleo a medida centrado en la seguridad defensiva.

Directivas de Seguridad Defensiva

  • Protección CSRF: Tokens firmados por sesión en POSTs.
  • CSP Restrictiva: Cabeceras para prevenir ataques XSS.
  • Rate Limit: Previene ataques de fuerza bruta en Auth.
  • Sesiones Aisladas: Guardadas en local, cookies HTTPOnly.
  • Preparación SQL: Inyecciones imposibilitadas vía PDO.
  • Bcrypt Hashing: Encriptación irreversible de contraseñas.
PHP 8.x nativo (MVC) Router extensible con alias Capa de datos PDO abstracta Google OAuth 2.0 integrado PHPMailer & Fallback Local Stripe Subscriptions SDK
Fastplay Stack Técnico
Estructura lógica y flujo de datos
Fastplay Fifa Card
Interfaz del perfil de jugador en el Dashboard
Diseño & Frontend (DIW)

Experiencia inmersiva: Estadio nocturno.

El diseño de interfaz emula la atmósfera de un estadio iluminado artificialmente. La paleta combina fondos mate profundos, desenfoques en cascada (glassmorphism), acentos de neón deportivo y dorado Pro.

Vanilla CSS3 Custom Properties

Estilos centralizados mediante variables nativas en :root, permitiendo overrides ágiles para temas claros/oscuros.

Cápsula Flotante Glassmorphism

Estructura de navegación minimalista (floating nav capsule) adaptada de forma elástica a layouts móviles mediante flexbox y grid.

Scroll-Triggered Animations

Revelado progresivo y dinámico de elementos a medida que el usuario hace scroll, gestionado con JavaScript nativo.

Carga variable tipográfica (Inter/Outfit) Bootstrap Icons integrados Caching dinámico mediante asset() FIFA-Card de Stats interactiva
Capa de Persistencia

Modelo de datos y Relaciones

Fastplay soporta dos motores de base de datos de manera agnóstica: **SQLite 3** para el desarrollo ágil local con auto-migración y seeder integrado, y **PostgreSQL** para despliegues de producción sobre Docker/EasyPanel.

Usuario

Almacena credenciales, flags de verificación de correo (`email_verified`), tokens hash de activación, rol de acceso (`admin/player`), estadísticas y perfil general del jugador local.

Equipo

Gestionado por un Capitán. Controla la plantilla de jugadores, cuotas, solicitudes de unión entrantes (`team-join-request`) y registros en competiciones.

Liga

Competiciones divididas en Pro (dorado premium, inscripciones de pago) y Amistosas (gratuita). Registra históricos y tablas clasificatorias generadas al vuelo.

Partido

Encuentros deportivos vinculados a una liga y un Campo. Controla estados (`Pendiente`, `Confirmado`, `En Curso`, `Finalizado`) y la convocatoria del plantel.

Campo

Recintos deportivos físicos reservados por fecha y franja horaria. Almacena las coordenadas geográficas de los campos de Ceuta.

Chat & Logro

Salas por equipo y canales de negociación 1:1 entre capitanes para pactar retos amistosos. Sistema de gamificación con medallas desbloqueadas por hitos.

Auto-Migraciones: En el primer arranque, la aplicación detecta si el archivo SQLite existe; si no, ejecuta de forma idempotente las consultas de definición de esquemas e inyecta los datos semilla (seeding) con jugadores y partidos realistas de Ceuta.
Idempotente
Arquitectura de Directorios

Estructura de Carpetas Clave

El proyecto sigue una distribución MVC estructurada y segura, aislando todo el código lógico fuera de la raíz pública accesible desde la web. Explora los directorios haciendo clic en ellos:

Desarrollo Avanzado (DWEC/DIW)

Resolución de Problemas e Innovación

Nuestras iteraciones frontend y backend resuelven problemas del mundo real relacionados con compatibilidad gráfica en navegadores modernos y experiencia de usuario.

GPU Composition (Ghost Shadows)

Corregimos el bug de texturas fantasmas de Chromium. El uso de backdrop-filter con desplazamientos tridimensionales desalineaba la sombra de los paneles. Lo solucionamos forzando contextos de composición de GPU independientes con translate3d(0, 0, 0).

Ceuta Fields Split-Layout

Rediseñamos la vista de campos de fútbol locales. Ubica un mapa interactivo flotante y sticky en la izquierda (45%) mientras el usuario explora las tarjetas de campos en la derecha (55%). Convierte a modo apilado automáticamente en pantallas táctiles móviles.

Mecanismo de Doble-Opt-In

Diferenciamos el registro: OAuth de Google (correo verificado externamente) genera una cuenta activa de inmediato. El registro normal requiere activación por correo y genera notificaciones internas y alertas en el panel de control del usuario.

Desarrollo JS

Eventos DOM interactivos, AJAX para chats de equipo y validaciones Regex.

JS VANILLA RESPONSIVO
Engagement & Retención

Gamificación y Comunidad viva

Fastplay no es solo un gestor: es una comunidad. Combinamos mecánicas de juego, comunicación en tiempo real y retos entre capitanes para mantener a los jugadores enganchados temporada tras temporada.

Logros & Medallas

Sistema de hitos desbloqueables: primer gol, racha de victorias, veteranía o fichajes. Cada logro otorga insignias visibles en el perfil del jugador.

Carta FIFA Dinámica

Cada jugador posee una carta de estadísticas estilo FIFA que evoluciona con su rendimiento real: partidos jugados, goles, asistencias y valoración media.

Chat de Equipo (AJAX)

Salas de mensajería en tiempo real por equipo, gestionadas con peticiones asíncronas JavaScript para coordinar alineaciones sin recargar la página.

Retos entre Capitanes

Canal de negociación 1:1 donde los capitanes pactan amistosos en directo: fecha, campo y reglas. El reto aceptado genera el partido automáticamente.

Notificaciones internas: solicitudes de unión, confirmaciones de partido y logros desbloqueados llegan al panel del usuario en tiempo real.
Tiempo Real
El Proyecto en Cifras

Magnitud y Robustez técnica

Un vistazo cuantitativo al esfuerzo de ingeniería detrás de Fastplay: cobertura de pruebas, entidades de dominio y arquitectura construida íntegramente a medida.

0
Tests PHPUnit
0
Entidades de Dominio
0
Campos de Ceuta
0%
Stack Vanilla
0
Modelos de Liga
0
Pasarela Stripe
0
Motores BD (SQLite/PG)
0
Frameworks Pesados

Cero dependencias de framework: cada capa — router, ORM ligero, autenticación, seguridad y vistas — fue diseñada y verificada manualmente para demostrar dominio completo del stack web.

Calidad del Código & Roadmap

Código limpio y 100% verificado.

La estabilidad de Fastplay está respaldada por una amplia suite de pruebas unitarias locales automatizadas que verifican la lógica de negocio antes de integraciones y despliegues en producción.

Próximos pasos (Roadmap v4)

  • API Rest: Implementación de servicios JSON para clientes de aplicaciones nativas móviles.
  • WebSockets: Resultados y estadísticas en vivo para partidos Pro en juego.
  • PWA: Aplicación web progresiva instalable fuera del navegador con notificaciones push.
231 TESTS PASADOS PHPUNIT COMPLETO

Producción Estable

Configuraciones analizadas con scripts de diagnóstico locales en EasyPanel garantizando cargas seguras y consistentes de las variables de Stripe, SMTP y Google callback.

Volver a la Aplicación Principal
Presentación completada

FastPlay

Donde la pachanga de barrio en Ceuta se convierte en competición organizada.

Gracias por recorrer la arquitectura técnica del proyecto. Una aplicación web completa, segura y sin frameworks, construida desde cero.

Volver al Inicio Ver en GitHub
Navega con o Espacio