🌊 Flujo de Trabajo y Metodología
En Rial AI seguimos una metodología de desarrollo estructurada que combina las mejores prácticas de la industria con herramientas modernas para garantizar código de calidad y colaboración efectiva.
📋 Estructura de Repositorios
Repositorios Principales
- Backend: github.com/Rial-Cenia/rial-backend
- Frontend: github.com/Rial-Cenia/rial-frontend
Ramas Principales
🌳 Estructura de Ramas
production # Código en producción (rial-ai.com)
↑
develop # Código en staging (staging.rial-ai.com)
↑
feature/* # Ramas de desarrollo de funcionalidades
hotfix/* # Correcciones urgentes para producciónDescripción de Ramas
production: Código que está ejecutándose en rial-ai.comdevelop: Código en ambiente de pruebas staging.rial-ai.comfeature/*: Ramas temporales para desarrollar nuevas funcionalidadeshotfix/*: Correcciones urgentes que van directo a producción
🔄 Flujo de Desarrollo
1. 📝 Planificación en Notion
Antes de escribir código, toda tarea debe estar documentada en nuestros tableros Kanban de Notion.
Tableros de Notion
- 📊 Macro Projects: Seguimiento de proyectos grandes y estratégicos
- 🎯 Projects: Proyectos específicos dentro de macro proyectos
- ⚡ Tasks Dev: Tareas técnicas individuales dentro de un proyecto
- 🐛 Product Backlog: Errores, mejoras y refactorizaciones
¿Qué es un KANBAN?
Un KANBAN es un sistema visual para gestionar trabajo. Organiza tareas en columnas que representan diferentes estados:
📋 To Do → 🔄 In Progress → 👀 In Review → ✅ Done2. 🌿 Creación de Rama
# Asegúrate de estar en develop y actualizado
git checkout develop
git pull origin develop
# Crear nueva rama para tu tarea
git checkout -b feature/nombre-descriptivo-de-la-tareaConvención de Nombres de Ramas
feature/user-authentication # Nueva funcionalidad
fix/login-error-handling # Corrección de bug
hotfix/critical-security-patch # Corrección urgente
refactor/database-queries # Refactorización
docs/api-documentation # Documentación
chores/dependencies-update # Actualización de dependencias3. 💻 Desarrollo
Desarrolla tu funcionalidad siguiendo las mejores prácticas:
Commits Frecuentes
Haz commits pequeños y frecuentes con mensajes descriptivos:
git add .
git commit -m "feat: add user login validation"
git commit -m "test: add unit tests for login service"
git commit -m "docs: update API documentation"Testea linters, formatter y errores de tipos
# Backend
yarn lint
yarn tsc --noEmit
# Frontend
yarn lint
yarn tsc --noEmit
yarn formatTesting Continuo
# Backend
yarn test # Tests unitarios
yarn test:e2e # Tests de integración
# Frontend
yarn test # Tests4. 📤 Pull Request
Cuando tu funcionalidad esté completa, crea un Pull Request.
Proceso de Pull Request
- Push de tu rama:
git push origin feature/nombre-de-tu-rama- Crear PR en GitHub:
- Ve al repositorio en GitHub
- Click en “Compare & pull request”
- Selecciona
developcomo rama base - Completa la descripción del PR
Template de Pull Request
A continuación se muestra un ejemplo de Pull Request. La idea es que sea descriptivo y claro para que el equipo pueda entender el cambio que se está haciendo.
## 📋 Descripción
Breve descripción de qué hace este PR y por qué es necesario.
## 🎯 Tipo de Cambio
- [ ] 🐛 Bug fix
- [ ] ✨ Nueva funcionalidad
- [ ] 💥 Breaking change
- [ ] 📚 Documentación
- [ ] 🔧 Refactoring
## 🧪 Testing
- [ ] Tests unitarios agregados/actualizados
- [ ] Tests de integración agregados/actualizados
- [ ] Tested manualmente
## 📸 Screenshots/Videos
(Si aplica, agregar capturas de pantalla o videos)
## 🔗 Enlaces Relacionados
- Link a la tarea en Notion
- Link a issues relacionados
- Link a documentación relevante
## ✅ Checklist
- [ ] El código sigue las convenciones del proyecto
- [ ] He realizado una auto-revisión de mi código
- [ ] He comentado mi código en áreas difíciles de entender
- [ ] He actualizado la documentación correspondiente
- [ ] Mis cambios no generan nuevas advertencias
- [ ] He agregado tests que prueban mi funcionalidad
- [ ] Tests nuevos y existentes pasan localmente5. 👀 Code Review
Todo PR debe ser revisado por al menos un desarrollador del equipo. Puedes asignar el PR a un compañero para que lo revise a través de GitHub.
6. ✅ Merge y Deploy
Una vez aprobado el PR:
- Merge a develop: El PR se fusiona automáticamente
- Deploy automático: GitHub Actions despliega a staging
- Testing en staging: Verificar que todo funciona
- Merge a production: Esto se hace en las fechas de release por el encargado de releases
📝 Convención de Commits
Seguimos la Convención de Commits Convencionales para mantener un historial limpio y automatizar releases.
Formato
<tipo>[scope opcional]: <descripción>
[cuerpo opcional]
[footer opcional]Tipos de Commit
feat: Nueva funcionalidadfix: Corrección de bugdocs: Cambios en documentaciónstyle: Cambios de formato (espacios, comas, etc.)refactor: Refactorización de códigotest: Agregar o modificar testschore: Tareas de mantenimiento
Ejemplos
# Nueva funcionalidad
git commit -m "feat(auth): add JWT token validation"
# Corrección de bug
git commit -m "fix(api): handle null values in user profile"
# Documentación
git commit -m "docs(readme): update installation instructions"
# Refactoring
git commit -m "refactor(database): optimize user queries"
# Tests
git commit -m "test(auth): add unit tests for login service"
# Breaking change
git commit -m "feat(api)!: change user endpoint structure
BREAKING CHANGE: user endpoint now returns different format"🚀 CI/CD y Automatización
Pipeline Automático
Es un archivo YAML que define los pasos que se van a ejecutar cuando se haga un push a una rama.
Pasos del Pipeline
- Backend:
- 🔍 Linting: ESLint revisa calidad de código
- 📝 Type Check: TypeScript verifica tipos
- 🧪 Tests: Jest ejecuta tests unitarios
- 🐳 Build: Docker construye imagen
- 📦 Push: Imagen se sube a Artifact Registry
- 🚀 Deploy: Cloud Run despliega automáticamente
- Frontend:
- 🔍 Linting: ESLint revisa calidad de código
- 📝 Type Check: TypeScript verifica tipos
- 🧪 Tests: Jest ejecuta tests unitarios
📚 Recursos Adicionales
Documentación Interna
- Stack Tecnológico - Herramientas y tecnologías
- Configuración - Setup del entorno de desarrollo
- Testing - Guías de testing
Recursos Externos
- Git Flow - Metodología de branching
- Conventional Commits - Convención de commits
- GitHub Flow - Flujo simplificado de GitHub
¿Tienes dudas sobre el flujo de trabajo? ¡Consulta el diccionario técnico o pregunta al equipo!