Skip to Content
📚 Bienvenido a la documentación técnica de Rial AI 👋
🌊 Flujo de Trabajo y Metodología

🌊 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

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ón

Descripción de Ramas

  • production: Código que está ejecutándose en rial-ai.com 
  • develop: Código en ambiente de pruebas staging.rial-ai.com 
  • feature/*: Ramas temporales para desarrollar nuevas funcionalidades
  • hotfix/*: 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 → ✅ Done

2. 🌿 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-tarea

Convenció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 dependencias

3. 💻 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 format

Testing Continuo

# Backend yarn test # Tests unitarios yarn test:e2e # Tests de integración # Frontend yarn test # Tests

4. 📤 Pull Request

Cuando tu funcionalidad esté completa, crea un Pull Request.

Proceso de Pull Request

  1. Push de tu rama:
git push origin feature/nombre-de-tu-rama
  1. Crear PR en GitHub:
    • Ve al repositorio en GitHub
    • Click en “Compare & pull request”
    • Selecciona develop como 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 localmente

5. 👀 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:

  1. Merge a develop: El PR se fusiona automáticamente
  2. Deploy automático: GitHub Actions despliega a staging
  3. Testing en staging: Verificar que todo funciona
  4. 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 funcionalidad
  • fix: Corrección de bug
  • docs: Cambios en documentación
  • style: Cambios de formato (espacios, comas, etc.)
  • refactor: Refactorización de código
  • test: Agregar o modificar tests
  • chore: 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:
  1. 🔍 Linting: ESLint revisa calidad de código
  2. 📝 Type Check: TypeScript verifica tipos
  3. 🧪 Tests: Jest ejecuta tests unitarios
  4. 🐳 Build: Docker construye imagen
  5. 📦 Push: Imagen se sube a Artifact Registry
  6. 🚀 Deploy: Cloud Run despliega automáticamente
  • Frontend:
  1. 🔍 Linting: ESLint revisa calidad de código
  2. 📝 Type Check: TypeScript verifica tipos
  3. 🧪 Tests: Jest ejecuta tests unitarios

📚 Recursos Adicionales

Documentación Interna

Recursos Externos

¿Tienes dudas sobre el flujo de trabajo? ¡Consulta el diccionario técnico o pregunta al equipo!

Last updated on