SubastApp - Timeline de Interacciones del Usuario
📋 Resumen de Interacciones Clave
Este documento registra las interacciones más importantes del usuario que influyeron significativamente en la dirección y decisiones del proyecto de despliegue.
🎯 Interacciones que Cambiaron la Dirección del Proyecto
1. Decisión de Arquitectura de Infraestructura
Interacción: "Quiero pensar un poco más antes. Esto es para un uso intensivo durante 10 horas por unas 20 personas. Después pretendo mantenerlo online pero no estará en producción. Pienso que quizá la opción más economica puede ser un droplet más un saas de mysql (ambos en DO) puesto que ya tengo infra ahí de ambas cosas (también alguna app en app platform). Que piensas que es más adecuado en este escenario?"
Impacto:
- ✅ Cambio de estrategia: De App Platform + Managed MySQL a Droplet + Managed MySQL
- ✅ Consideración de costos: Priorización de solución económica para uso específico
- ✅ Aprovechamiento de infraestructura existente: Uso de recursos ya disponibles en DO
2. Decisión de Usar Docker en Droplet
Interacción: "Y desplegarlo con la configuración actual de docker en un droplet? No hace falta cambiar la arquitectura con las últimas modificaciones, no? Así lo tendríamos preparado para el cambio a app platform en cualquier momento"
Impacto:
- ✅ Mantenimiento de Docker: Conservar configuración Docker existente
- ✅ Flexibilidad futura: Preparación para migración a App Platform
- ✅ Simplicidad de despliegue: Usar herramientas ya configuradas
3. Separación de Repositorios
Interacción: "Creo que sería mejor separar la parte de la Infra en otro repositorio"
Impacto:
- ✅ Separación de responsabilidades: Código de aplicación vs infraestructura
- ✅ Mejor gestión de versiones: Control independiente de cambios
- ✅ Facilitar colaboración: Diferentes equipos pueden trabajar independientemente
4. Implementación de GitHub Actions
Interacción: "que te parece hacer una github action en el repositorio de infra y desplegar desde allí al servidor?"
Impacto:
- ✅ Automatización del despliegue: CI/CD pipeline implementado
- ✅ Reducción de errores manuales: Proceso estandarizado
- ✅ Mejor trazabilidad: Logs y historial de despliegues
5. Cambio a MySQL Local
Interacción: "ya se cual es el problema, es problema mio. Tenemos que cambiar la configuración. Vamos a hacer la BD en el droplet. Modifica lo que necesites en el docker para que la conexion este ahí (y en el tfvars)"
Impacto:
- ✅ Simplificación de arquitectura: Todo en un solo servidor
- ✅ Reducción de costos: Eliminación de servicio MySQL gestionado
- ✅ Mejor control: Gestión directa de la base de datos
6. Población de Base de Datos
Interacción: "no, lo que quiero decir es que el del droplet es el que funciona seguro, úsalo como fuente, no?"
Impacto:
- ✅ Datos reales para testing: Base de datos poblada con información real
- ✅ Validación de funcionalidad: Pruebas con datos reales
- ✅ Preparación para producción: Sistema listo para uso real
7. Documentación Completa
Interacción: "Lo siguiente que quiero que hagas es una documentación en formato postmortem de todo lo que hemos hecho desde que ha empezado esta conversación. En formato markup language."
Impacto:
- ✅ Documentación exhaustiva: Registro completo del proceso
- ✅ Conocimiento preservado: Información disponible para futuros proyectos
- ✅ Mejora de procesos: Lecciones aprendidas documentadas
8. Documentación Web Accesible
Interacción: "Ok, ahora quiero que esto sea visualizable en el droplet en la dirección de la app con /documentacion"
Impacto:
- ✅ Acceso web a documentación: Documentación accesible públicamente
- ✅ Mejora de UX: Interfaz web para navegar documentación
- ✅ Profesionalización: Presentación profesional del proyecto
🔄 Interacciones de Resolución de Problemas
Problema: Archivos package.json Corruptos
Interacción: "sigue lo que estas haciendo pero ten en cuenta que la app (la carpeta SUBASTAPP) viene de un ordenador Windows y este es un linux"
Resolución: Identificación del problema de codificación Windows → Linux, recreación manual de archivos
Problema: Información Sensible Expuesta
Interacción: "revisa el codigo que se ha subido a ver si hay informacion sensible"
Resolución: Eliminación de archivos sensibles, regeneración de claves, configuración de .gitignore
Problema: Renderizado de Documentación
Interacción: "se sigue viendo en texto plano"
Resolución: Creación de archivos HTML renderizados en lugar de markdown crudo
📊 Análisis de Patrones de Interacción
Características del Usuario
- Experiencia técnica alta: Conocimiento profundo de infraestructura cloud
- Enfoque pragmático: Priorización de soluciones prácticas sobre perfección
- Pensamiento estratégico: Consideración de costos y escalabilidad futura
- Resolución sistemática: Abordaje estructurado de problemas
Patrones de Decisión
- Evaluación de costos: Siempre considera el aspecto económico
- Flexibilidad futura: Prepara para cambios y escalabilidad
- Separación de responsabilidades: Divide claramente diferentes aspectos del proyecto
- Documentación: Valora la preservación del conocimiento
🎯 Lecciones Aprendidas de las Interacciones
Positivas:
- Experiencia del usuario: Conocimiento profundo de infraestructura cloud
- Enfoque sistemático: Resolución de problemas en orden lógico
- Priorización correcta: Enfoque en funcionalidad antes que perfección
- Gestión de seguridad: Atención a aspectos de seguridad desde el inicio
Áreas de Mejora:
- Comunicación inicial: Mejor alineación de expectativas al inicio
- Documentación: Documentar decisiones y configuraciones más temprano
- Testing: Más testing en etapas tempranas del proceso
📈 Impacto en el Proyecto Final
Arquitectura Final
- Droplet + MySQL local: Solución económica y controlada
- Docker Compose: Facilita futuras migraciones
- Repositorios separados: Mejor organización del código
- GitHub Actions: Automatización del despliegue
Calidad del Resultado
- Aplicación funcional: Sistema completamente operativo
- Documentación completa: 5 archivos de documentación detallada
- Seguridad implementada: Configuraciones de seguridad básicas
- Escalabilidad preparada: Listo para futuras mejoras
Conclusión
Las interacciones del usuario fueron fundamentales para el éxito del proyecto, proporcionando dirección técnica, validación continua y enfoque pragmático que resultó en un despliegue exitoso y funcional. La experiencia del usuario en infraestructura cloud y su enfoque sistemático fueron clave para superar los desafíos técnicos encontrados.