From 4cc1adc9ca0518e360a76fc35c696d2c5445b2ca Mon Sep 17 00:00:00 2001 From: Ivan Alcaraz Date: Sat, 31 Jan 2026 07:57:35 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=BE=20Initial=20commit:=20Plan=20de=20?= =?UTF-8?q?trabajo=20App=20Canchas=20de=20Padel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Plan completo de 24 semanas / 7 fases - Estructura inicial de carpetas - Documentacion de roadmap por fases - Integracion con Odoo project management --- .gitignore | 13 ++ CHANGELOG.md | 7 + README.md | 28 ++++ docs/roadmap/FASE-01.md | 15 ++ docs/roadmap/FASE-02.md | 6 + docs/roadmap/FASE-03.md | 6 + docs/roadmap/FASE-04.md | 6 + docs/roadmap/FASE-05.md | 6 + docs/roadmap/FASE-06.md | 6 + docs/roadmap/FASE-07.md | 6 + plan_trabajo.md | 355 ++++++++++++++++++++++++++++++++++++++++ 11 files changed, 454 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 README.md create mode 100644 docs/roadmap/FASE-01.md create mode 100644 docs/roadmap/FASE-02.md create mode 100644 docs/roadmap/FASE-03.md create mode 100644 docs/roadmap/FASE-04.md create mode 100644 docs/roadmap/FASE-05.md create mode 100644 docs/roadmap/FASE-06.md create mode 100644 docs/roadmap/FASE-07.md create mode 100644 plan_trabajo.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fe084bb --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +.env +.env.local +node_modules/ +__pycache__/ +*.pyc +.DS_Store +.vscode/ +.idea/ +dist/ +build/ +coverage/ +*.log + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..594747d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +## Fase 1 - Fundamentos + +### Semana 1 +- [ ] Setup inicial del proyecto + diff --git a/README.md b/README.md new file mode 100644 index 0000000..8661b11 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# App Canchas de Pádel + +Aplicación de gestión completa para canchas de pádel. + +## 📋 Plan de Trabajo + +Ver [plan_trabajo.md](./plan_trabajo.md) para el plan detallado. + +## 🏗️ Estructura de Fases + +| Fase | Descripción | Semanas | +|------|-------------|---------| +| Fase 1 | Fundamentos y Core | 1-4 | +| Fase 2 | Gestión de Jugadores y Perfiles | 5-7 | +| Fase 3 | Torneos y Ligas | 8-11 | +| Fase 4 | Pagos y Monetización | 12-14 | +| Fase 5 | Analytics y Administración | 15-17 | +| Fase 6 | Extras y Diferenciadores | 18-20 | +| Fase 7 | Testing y Lanzamiento | 21-24 | + +## 🔗 Enlaces + +- **Odoo Project:** https://crm.consultoria-as.com/web#id=25&model=project.project +- **Gitea Repo:** https://git.consultoria-as.com/consultoria-as/app-padel + +--- +*Proyecto iniciado el 2026-01-31* + diff --git a/docs/roadmap/FASE-01.md b/docs/roadmap/FASE-01.md new file mode 100644 index 0000000..a2d8f42 --- /dev/null +++ b/docs/roadmap/FASE-01.md @@ -0,0 +1,15 @@ +# Fase 1: Fundamentos y Core + +## Estado: 🚧 En progreso + +### Tareas completadas: +- [ ] 1.1.1 Definición de Arquitectura +- [ ] 1.1.2 Setup Infraestructura +- [ ] 1.2.1 Sistema de Autenticación +- [ ] 1.2.2 Gestión de Roles +- [ ] 1.3.1 Gestión de Canchas +- [ ] 1.3.2 Sistema de Reservas Core +- [ ] 1.3.3 Notificaciones Básicas + +### Notas de la fase: + diff --git a/docs/roadmap/FASE-02.md b/docs/roadmap/FASE-02.md new file mode 100644 index 0000000..1d8e0cb --- /dev/null +++ b/docs/roadmap/FASE-02.md @@ -0,0 +1,6 @@ +# Fase 2: Perfiles + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 1* + diff --git a/docs/roadmap/FASE-03.md b/docs/roadmap/FASE-03.md new file mode 100644 index 0000000..70760f7 --- /dev/null +++ b/docs/roadmap/FASE-03.md @@ -0,0 +1,6 @@ +# Fase 3: Torneos + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 2* + diff --git a/docs/roadmap/FASE-04.md b/docs/roadmap/FASE-04.md new file mode 100644 index 0000000..3845507 --- /dev/null +++ b/docs/roadmap/FASE-04.md @@ -0,0 +1,6 @@ +# Fase 4: Pagos + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 3* + diff --git a/docs/roadmap/FASE-05.md b/docs/roadmap/FASE-05.md new file mode 100644 index 0000000..c7805be --- /dev/null +++ b/docs/roadmap/FASE-05.md @@ -0,0 +1,6 @@ +# Fase 5: Analytics + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 4* + diff --git a/docs/roadmap/FASE-06.md b/docs/roadmap/FASE-06.md new file mode 100644 index 0000000..57c7862 --- /dev/null +++ b/docs/roadmap/FASE-06.md @@ -0,0 +1,6 @@ +# Fase 6: Extras + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 5* + diff --git a/docs/roadmap/FASE-07.md b/docs/roadmap/FASE-07.md new file mode 100644 index 0000000..1b91667 --- /dev/null +++ b/docs/roadmap/FASE-07.md @@ -0,0 +1,6 @@ +# Fase 7: Lanzamiento + +## Estado: ⏳ Pendiente + +*Esta fase comenzará al finalizar la Fase 6* + diff --git a/plan_trabajo.md b/plan_trabajo.md new file mode 100644 index 0000000..4e52c13 --- /dev/null +++ b/plan_trabajo.md @@ -0,0 +1,355 @@ +# Plan de Trabajo - App Canchas de Pádel + +## FASE 1: FUNDAMENTOS Y CORE (Semanas 1-4) + +### ETAPA 1.1: Arquitectura y Setup (Semana 1) + +#### Tarea 1.1.1: Definición de Arquitectura +- Subtarea 1.1.1.1: Definir stack tecnológico (Backend, Frontend, Base de datos) +- Subtarea 1.1.1.2: Diseñar diagrama de arquitectura de sistemas +- Subtarea 1.1.1.3: Definir estructura de base de datos (entidades principales) +- Subtarea 1.1.1.4: Documento de requisitos técnicos + +#### Tarea 1.1.2: Setup de Infraestructura +- Subtarea 1.1.2.1: Configurar repositorios Git +- Subtarea 1.1.2.2: Configurar entornos (dev, staging, prod) +- Subtarea 1.1.2.3: Setup de CI/CD pipelines +- Subtarea 1.1.2.4: Configurar servidores/cloud + +### ETAPA 1.2: Módulo de Autenticación y Usuarios (Semana 2) + +#### Tarea 1.2.1: Sistema de Autenticación +- Subtarea 1.2.1.1: Registro de usuarios (email, Google, Apple) +- Subtarea 1.2.1.2: Login y logout +- Subtarea 1.2.1.3: Recuperación de contraseña +- Subtarea 1.2.1.4: Verificación de email + +#### Tarea 1.2.2: Gestión de Roles +- Subtarea 1.2.2.1: Rol Jugador +- Subtarea 1.2.2.2: Rol Administrador/Club +- Subtarea 1.2.2.3: Middleware de permisos + +### ETAPA 1.3: Módulo de Reservas Base (Semanas 3-4) + +#### Tarea 1.3.1: Gestión de Canchas +- Subtarea 1.3.1.1: CRUD de canchas (nombre, tipo, características) +- Subtarea 1.3.1.2: Configuración de horarios de apertura/cierre +- Subtarea 1.3.1.3: Configuración de precios por franja horaria +- Subtarea 1.3.1.4: Estados de cancha (disponible, mantenimiento, bloqueada) + +#### Tarea 1.3.2: Sistema de Reservas Core +- Subtarea 1.3.2.1: Vista calendario semanal de canchas +- Subtarea 1.3.2.2: Crear reserva (seleccionar cancha, día, hora) +- Subtarea 1.3.2.3: Validación de disponibilidad en tiempo real +- Subtarea 1.3.2.4: Cancelación de reservas +- Subtarea 1.3.2.5: Políticas de cancelación configurables + +#### Tarea 1.3.3: Notificaciones Básicas +- Subtarea 1.3.3.1: Email de confirmación de reserva +- Subtarea 1.3.3.2: Recordatorio 24h antes del partido +- Subtarea 1.3.3.3: Notificación de cancelación + +--- + +## FASE 2: GESTIÓN DE JUGADORES Y PERFILES (Semanas 5-7) + +### ETAPA 2.1: Perfiles de Jugador (Semana 5) + +#### Tarea 2.1.1: Perfil Completo +- Subtarea 2.1.1.1: Datos personales extendidos (teléfono, foto) +- Subtarea 2.1.1.2: Datos de juego (nivel 1-6, mano hábil) +- Subtarea 2.1.1.3: Posición preferida (drive/reves) +- Subtarea 2.1.1.4: Biografía/descripción + +#### Tarea 2.1.2: Sistema de Niveles +- Subtarea 2.1.2.1: Definir escala de niveles con descripciones +- Subtarea 2.1.2.2: Validación de nivel por administradores +- Subtarea 2.1.2.3: Historial de cambios de nivel + +### ETAPA 2.2: Funcionalidades Sociales (Semana 6) + +#### Tarea 2.2.1: Sistema de Amigos/Grupos +- Subtarea 2.2.1.1: Agregar/eliminar amigos +- Subtarea 2.2.1.2: Crear grupos de jugadores +- Subtarea 2.2.1.3: Invitar jugadores a grupo +- Subtarea 2.2.1.4: Reserva grupal (reservar para grupo completo) + +#### Tarea 2.2.2: Reservas Recurrentes +- Subtarea 2.2.2.1: Configurar fijo semanal (mismo día/hora) +- Subtarea 2.2.2.2: Gestión de reservas recurrentes (editar serie) +- Subtarea 2.2.2.3: Lista de espera cuando cancha ocupada +- Subtarea 2.2.2.4: Notificación automática si se libera cupo + +### ETAPA 2.3: Historial y Estadísticas (Semana 7) + +#### Tarea 2.3.1: Historial de Actividad +- Subtarea 2.3.1.1: Registro de partidos jugados +- Subtarea 2.3.1.2: Estadísticas de asistencia +- Subtarea 2.3.1.3: Reservas pasadas y futuras + +#### Tarea 2.3.2: Ranking Interno +- Subtarea 2.3.2.1: Sistema de puntos por participación +- Subtarea 2.3.2.2: Tabla de clasificación visible +- Subtarea 2.3.2.3: Filtros por nivel, tiempo, cancha + +--- + +## FASE 3: TORNEOS Y LIGAS (Semanas 8-11) + +### ETAPA 3.1: Gestión de Torneos (Semanas 8-9) + +#### Tarea 3.1.1: Creación de Torneos +- Subtarea 3.1.1.1: Formulario de creación de torneo +- Subtarea 3.1.1.2: Configurar formato (eliminación, liga, suizo) +- Subtarea 3.1.1.3: Definir categorías (masculina, femenina, mixta) +- Subtarea 3.1.1.4: Configurar niveles permitidos +- Subtarea 3.1.1.5: Establecer fechas y canchas asignadas + +#### Tarea 3.1.2: Inscripciones +- Subtarea 3.1.2.1: Inscripción online individual/parejas +- Subtarea 3.1.2.2: Pago de inscripción integrado +- Subtarea 3.1.2.3: Lista de inscritos visible +- Subtarea 3.1.2.4: Cierre de inscripciones automático + +#### Tarea 3.1.3: Sorteos y Cuadros +- Subtarea 3.1.3.1: Sorteo automático de emparejamientos +- Subtarea 3.1.3.2: Generación de cuadro visual (bracket) +- Subtarea 3.1.3.3: Cuadro de consolación automático +- Subtarea 3.1.3.4: Publicación de cuadros en la app + +#### Tarea 3.1.4: Gestión de Partidos de Torneo +- Subtarea 3.1.4.1: Asignación de horarios y canchas +- Subtarea 3.1.4.2: Registro de resultados +- Subtarea 3.1.4.3: Avance automático en el cuadro +- Subtarea 3.1.4.4: Notificaciones a jugadores + +### ETAPA 3.2: Ligas (Semanas 10-11) + +#### Tarea 3.2.1: Ligas por Equipos +- Subtarea 3.2.1.1: Creación de equipos +- Subtarea 3.2.1.2: Inscripción de equipos en liga +- Subtarea 3.2.1.3: Configurar formato de jornadas +- Subtarea 3.2.1.4: Generación automática de calendario + +#### Tarea 3.2.2: Clasificaciones +- Subtarea 3.2.2.1: Tabla de clasificación automática +- Subtarea 3.2.2.2: Criterios de desempate configurables +- Subtarea 3.2.2.3: Estadísticas de equipos (partidos, sets, puntos) +- Subtarea 3.2.2.4: Historial de resultados por jornada + +--- + +## FASE 4: PAGOS Y MONETIZACIÓN (Semanas 12-14) + +### ETAPA 4.1: Pasarela de Pagos (Semana 12) + +#### Tarea 4.1.1: Integración de Pagos +- Subtarea 4.1.1.1: Integrar Stripe/PayPal/Redsys +- Subtarea 4.1.1.2: Pago con tarjeta de crédito/débito +- Subtarea 4.1.1.3: Pago con transferencia bancaria +- Subtarea 4.1.1.4: Pago en efectivo (registro manual admin) +- Subtarea 4.1.1.5: Guardar métodos de pago seguros + +#### Tarea 4.1.2: Gestión de Transacciones +- Subtarea 4.1.2.1: Historial de pagos del usuario +- Subtarea 4.1.2.2: Comprobantes/facturas automáticas +- Subtarea 4.1.2.3: Reembolsos y devoluciones +- Subtarea 4.1.2.4: Estados de pago (pendiente, completado, fallido) + +### ETAPA 4.2: Bonos y Packs (Semana 13) + +#### Tarea 4.2.1: Sistema de Bonos +- Subtarea 4.2.1.1: Crear tipos de bonos (5, 10, 20 partidos) +- Subtarea 4.2.1.2: Compra de bonos online +- Subtarea 4.2.1.3: Descuento automático al usar bono +- Subtarea 4.2.1.4: Expiración de bonos configurable +- Subtarea 4.2.1.5: Historial de uso de bonos + +#### Tarea 4.2.2: Suscripciones/Membresías +- Subtarea 4.2.2.1: Planes de suscripción (mensual, trimestral, anual) +- Subtarea 4.2.2.2: Beneficios por nivel de suscripción +- Subtarea 4.2.2.3: Cobro recurrente automático +- Subtarea 4.2.2.4: Gestión de upgrade/downgrade +- Subtarea 4.2.2.5: Cancelación de suscripción + +### ETAPA 4.3: Clases con Profesores (Semana 14) + +#### Tarea 4.3.1: Gestión de Profesores +- Subtarea 4.3.1.1: Perfil de profesores (foto, bio, niveles) +- Subtarea 4.3.1.2: Horarios disponibles por profesor +- Subtarea 4.3.1.3: Tarifas por clase/tipo + +#### Tarea 4.3.2: Reserva de Clases +- Subtarea 4.3.2.1: Catálogo de clases disponibles +- Subtarea 4.3.2.2: Reserva individual o grupal +- Subtarea 4.3.2.3: Pago de clases online +- Subtarea 4.3.2.4: Historial de clases tomadas + +--- + +## FASE 5: ANALYTICS Y PANEL DE ADMINISTRACIÓN (Semanas 15-17) + +### ETAPA 5.1: Panel de Administración (Semana 15) + +#### Tarea 5.1.1: Dashboard Administrativo +- Subtarea 5.1.1.1: Vista general de ocupación del día/semana +- Subtarea 5.1.1.2: Accesos rápidos (crear reserva, bloquear cancha) +- Subtarea 5.1.1.3: Lista de reservas del día con filtros +- Subtarea 5.1.1.4: Gestión de usuarios (activar/desactivar) + +#### Tarea 5.1.2: Gestión de Configuraciones +- Subtarea 5.1.2.1: Configurar horarios del club +- Subtarea 5.1.2.2: Configurar precios y temporadas +- Subtarea 5.1.2.3: Políticas de cancelación +- Subtarea 5.1.2.4: Personalización de notificaciones + +### ETAPA 5.2: Reportes y Analytics (Semanas 16-17) + +#### Tarea 5.2.1: Métricas de Ocupación +- Subtarea 5.2.1.1: % de ocupación por cancha +- Subtarea 5.2.1.2: Ocupación por franja horaria +- Subtarea 5.2.1.3: Comparativa mes a mes +- Subtarea 5.2.1.4: Días y horas más demandados + +#### Tarea 5.2.2: Métricas Financieras +- Subtarea 5.2.2.1: Ingresos por período (día, semana, mes, año) +- Subtarea 5.2.2.2: Ingresos por tipo (reservas, bonos, torneos, clases) +- Subtarea 5.2.2.3: Ingresos por cancha +- Subtarea 5.2.2.4: Comparativas y tendencias + +#### Tarea 5.2.3: Métricas de Usuarios +- Subtarea 5.2.3.1: Total de usuarios activos +- Subtarea 5.2.3.2: Nuevos registros por período +- Subtarea 5.2.3.3: Jugadores más activos (top 10/50) +- Subtarea 5.2.3.4: Jugadores inactivos (alertas de churn) +- Subtarea 5.2.3.5: Retención y frecuencia de uso + +#### Tarea 5.2.4: Exportación de Datos +- Subtarea 5.2.4.1: Exportar reservas a Excel/CSV +- Subtarea 5.2.4.2: Exportar informes financieros +- Subtarea 5.2.4.3: Exportar base de usuarios +- Subtarea 5.2.4.4: Reportes automáticos por email (semanal/mensual) + +--- + +## FASE 6: EXTRAS Y DIFERENCIADORES (Semanas 18-20) + +### ETAPA 6.1: Funcionalidades Sociales Avanzadas (Semana 18) + +#### Tarea 6.1.1: Wall of Fame +- Subtarea 6.1.1.1: Galería de ganadores de torneos +- Subtarea 6.1.1.2: Fotos de finales y ceremonias +- Subtarea 6.1.1.3: Historial de campeones por torneo +- Subtarea 6.1.1.4: Compartir en redes sociales + +#### Tarea 6.1.2: Retos y Logros +- Subtarea 6.1.2.1: Sistema de retos semanales/mensuales +- Subtarea 6.1.2.2: Logros desbloqueables (partidos, victorias, torneos) +- Subtarea 6.1.2.3: Badges visibles en perfil +- Subtarea 6.1.2.4: Tabla de líderes de retos + +### ETAPA 6.2: Integraciones y Servicios (Semana 19) + +#### Tarea 6.2.1: Check-in Digital +- Subtarea 6.2.1.1: Generación de QR por reserva +- Subtarea 6.2.1.2: Escáner de QR para recepción +- Subtarea 6.2.1.3: Confirmación de asistencia automática +- Subtarea 6.2.1.4: Lista de asistencia del día + +#### Tarea 6.2.2: Gestión de Material +- Subtarea 6.2.2.1: Catálogo de palas en alquiler +- Subtarea 6.2.2.2: Reserva de material con cancha +- Subtarea 6.2.2.3: Tienda de pelotas y accesorios +- Subtarea 6.2.2.4: Inventario y gestión de stock + +#### Tarea 6.2.3: Servicios del Club +- Subtarea 6.2.3.1: Pedido de bebidas/comida desde la cancha +- Subtarea 6.2.3.2: Notificación al bar/cafetería +- Subtarea 6.2.3.3: Historial de pedidos +- Subtarea 6.2.3.4: Pago integrado de consumiciones + +### ETAPA 6.3: Integraciones Externas (Semana 20) + +#### Tarea 6.3.1: Salud y Wearables +- Subtarea 6.3.1.1: Integración Apple Health +- Subtarea 6.3.1.2: Integración Google Fit +- Subtarea 6.3.1.3: Registro de calorías quemadas +- Subtarea 6.3.1.4: Tiempo de juego registrado + +#### Tarea 6.3.2: Redes Sociales +- Subtarea 6.3.2.1: Compartir resultados en redes +- Subtarea 6.3.2.2: Invitar amigos vía WhatsApp +- Subtarea 6.3.2.3: Login social (Google, Apple, Facebook) + +--- + +## FASE 7: TESTING Y LANZAMIENTO (Semanas 21-24) + +### ETAPA 7.1: Testing (Semanas 21-22) + +#### Tarea 7.1.1: Testing Funcional +- Subtarea 7.1.1.1: Tests unitarios backend +- Subtarea 7.1.1.2: Tests de integración API +- Subtarea 7.1.1.3: Tests E2E flujos críticos +- Subtarea 7.1.1.4: Testing en múltiples dispositivos + +#### Tarea 7.1.2: Testing de Usuario +- Subtarea 7.1.2.1: Beta cerrada con usuarios reales +- Subtarea 7.1.2.2: Recolección de feedback +- Subtarea 7.1.2.3: Ajustes según feedback +- Subtarea 7.1.2.4: Testing de carga/estrés + +### ETAPA 7.2: Preparación Lanzamiento (Semana 23) + +#### Tarea 7.2.1: Documentación +- Subtarea 7.2.1.1: Manual de usuario +- Subtarea 7.2.1.2: Guía de administración +- Subtarea 7.2.1.3: Videos tutoriales +- Subtarea 7.2.1.4: FAQ y centro de ayuda + +#### Tarea 7.2.2: App Stores +- Subtarea 7.2.2.1: Preparar assets para App Store +- Subtarea 7.2.2.2: Preparar assets para Google Play +- Subtarea 7.2.2.3: Descripción y keywords +- Subtarea 7.2.2.4: Screenshots y video promocional + +### ETAPA 7.3: Go Live (Semana 24) + +#### Tarea 7.3.1: Lanzamiento +- Subtarea 7.3.1.1: Deploy a producción +- Subtarea 7.3.1.2: Migración de datos iniciales +- Subtarea 7.3.1.3: Publicación en app stores +- Subtarea 7.3.1.4: Comunicación a clientes existentes + +#### Tarea 7.3.2: Soporte Post-Lanzamiento +- Subtarea 7.3.2.1: Canal de soporte configurado +- Subtarea 7.3.2.2: Monitoreo de errores (Sentry) +- Subtarea 7.3.2.3: Métricas de uso en tiempo real +- Subtarea 7.3.2.4: Plan de actualizaciones + +--- + +## RESUMEN DE ENTREGABLES + +| Fase | Duración | Entregable Principal | +|------|----------|---------------------| +| Fase 1 | 4 semanas | MVP Reservas funcional | +| Fase 2 | 3 semanas | Perfiles y sistema social | +| Fase 3 | 4 semanas | Torneos y ligas completos | +| Fase 4 | 3 semanas | Sistema de pagos integrado | +| Fase 5 | 3 semanas | Panel admin y analytics | +| Fase 6 | 3 semanas | Extras y diferenciadores | +| Fase 7 | 4 semanas | App lista para producción | +| **TOTAL** | **24 semanas (6 meses)** | **App Completa** | + +--- + +## EQUIPO RECOMENDADO + +- 1 Project Manager +- 1 Backend Developer (Node/Python) +- 1 Frontend Developer (React/Vue) +- 1 Mobile Developer (React Native/Flutter) +- 1 UX/UI Designer +- 1 QA Engineer +- 1 DevOps (medio tiempo)