Saltar al contenido
Todos los casos de estudio

CS-17 — Backend e integraciones

JF Bihotzetan — app de partidos de pádel del equipo

PWA mobile-first para que el equipo de pádel JF Bihotzetan organice sus partidos internos: inscripción por plazas, reserva de pista, chat por partido, notificaciones push y compartir por WhatsApp.

Mi papel
Proyecto personal; diseño e implementación completos.
Periodo
2026
Divulgación
Proyecto público
Tecnologías
TypeScriptNext.jsReactTailwind CSSPostgreSQLPrismaAuth.jsWeb PushVercelNeonVitest
Última revisión
13 de noviembre de 2026

Contexto

El equipo organizaba sus partidos de pádel a mano. Hacía falta una app sencilla en el móvil para crear partidos, apuntarse a una de las cuatro plazas, saber si la pista está reservada y enterarse de los cambios.

Retos

  1. 01Reglas de partido consistentes con varios usuarios apuntándose a la vez (cuatro plazas, sin duplicados).
  2. 02Notificaciones push fiables en móvil (incluido iOS) desde una PWA.
  3. 03Editar partidos sin inundar al equipo de avisos.

Solución y arquitectura

Next.js 15 (App Router) con TypeScript, PostgreSQL y Prisma, y Auth.js con credenciales y argon2. Las reglas del partido viven en servicios de servidor y toda mutación crítica va dentro de una transacción; el servicio calcula el estado abierto/completo y la reserva de pista es una dimensión independiente. Incluye calendario, gestión de clubes, cena tras el partido, chat por partido con límite de mensajes, roles de administración, notificaciones Web Push detrás de una interfaz de proveedor intercambiable y un botón de compartir con un resumen compacto del partido.

Decisiones clave

D-01

Reglas de negocio en servicios, no en componentes

Permite probarlas con tests unitarios (plazas, estados, cena, chat, permisos de borrado) independientemente de la interfaz.

D-02

Notificaciones detrás de una interfaz de proveedor

Hoy se usa Web Push; se puede cambiar de canal sin tocar la lógica.

D-03

Un único aviso consolidado al editar un partido

Los cambios de solo notas no notifican; los de fecha, hora o lugar obligan a declarar de nuevo el estado de la pista.

Compromisos

  • Se retiró el recordatorio una hora antes del partido porque el plan gratuito de Vercel solo permite crons diarios.

Resultados

En producción y en uso por el equipo, con entornos separados de producción y preproducción.

Aprendizajes

Aún no documentado

La app es privada para el equipo y requiere cuenta: para probarla hay que contactar con Ander a través de la página de contacto. El código es privado. Flujo de trabajo con ramas feature → develop (preproducción) → main (producción) y despliegue automático.

Pregunta sobre este caso de estudio

Pregunta sobre este caso de estudioIA · responde desde una base de conocimiento aprobada · no es Ander en tiempo real

Las preguntas de aquí se responden con el caso de estudio «JF Bihotzetan — app de partidos de pádel del equipo» como contexto.

Intro para enviar · Mayús + Intro para nueva línea0/1200