Números romanos: slash command de Slack

Índice


1. Preámbulo

Ver proyecto roman-numerals.

2. Resumen del proyecto

Este proyecto depende del proyecto roman-numerals, así que se asume que ya completaste o planeas completar dicho proyecto por separado, o que trabajarás con una o más compañeras en paralelo, quienes proveeran la librería roman-numerals para poder integrar esta funcionalidad en un slash command de Slack.

En este proyecto crearás una app de Slack que implemente un slash command (comandos que se pueden agregar a Slack), que permita a las usuarias convertir números enteros en números romanos y viceversa. Para ofrecer esta funcionalidad tendrás que implementar y desplegar un servidor HTTP que se encargue de responder las consultas enviadas desde Slack.

3. Objetivos de aprendizaje

Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo.

Node.js

JavaScript

Control de Versiones (Git y GitHub)

  • Git: Instalación y configuración

  • Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)

  • Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)

  • GitHub: Creación de cuenta y repos, configuración de llaves SSH

  • GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)

  • GitHub: Organización en Github (projects | issues | labels | milestones | releases)

Express.js

  • Manejo de rutas

  • Uso y creación de middleware

HTTP

WebOps

  • cloud-functions

slack

4. Consideraciones generales

  • El equipo de coaches te dará un tiempo sugerido e indicaciones sobre si trabajar sola o en equipo. Recuerda que cada una aprende a diferente ritmo.
  • El proyecto será entregado subiendo tu código a GitHub (commit/push) y la interfaz será desplegada usando GitHub pages. Si no sabes lo que es GitHub, no te preocupes, lo aprenderás durante este proyecto.

5. Criterios de aceptación mínimos del proyecto

/roman-numerals MMXX
2020
/roman-numerals 2020
MMXX
/roman-numerals help
/roman-numerals version

Servidor HTTP

Dos endpoints:

  • GET /: Debe responder con un objeto JSON con dos propiedades (name y version). Ejemplo:

    {
      "name": "roman-numerals-slack",
      "version": "1.0.0"
    }
  • POST /: Este es el endpoint al que Slack enviará los comandos escritos por las usuarias (en el cuerpo - body - de las consultas - requests) y responderá en formato JSON con un objeto como este:

    {
      "response_type": "in_channel",
      "text": "El texto que aparecerá como respuesta en el chat de Slack"
    }

    Puedes encontrar más detalles en la documentación oficial de Slack.

6. Pistas, tips y lecturas complementarias

Servidor HTTP

En este proyecto tendrás que implementar y desplegar un endpoint que reciba requests (consultas HTTP) de Slack (cada vez que alguien invoca nuestro slash command). Esto significa que nuestro endpoint debe estar desplegado en una URL pública. Para esto pueden usar la plataforma que prefieran. Algunas opciones que pueden explorar:

  • Firebase Cloud functions
  • AWS Lambda
  • Docker + GPC o AWS ECS
  • Heroku
  • Now (Zeit)

Apps en Slack

Para poder trabajar en este proyecto necesitas seguir estos pasos:

  1. Crea un workspace de Slack gratuito e invita a tus compañeras de equipo y otras personas que quieres que tenan acceso a tu entorno de desarrollo.
  2. Crea una App en la plataforma para developers de Slack y asóciala al workspace que hayas creado en el punto 1.
  3. En tu nueva app, crea un slash command para que tus usuarias puedan invocar tu endpoint. Para hacer esto necesitarás ya tener la URL pública del endpoint de tu servidor HTTP, así que asegúrate de desplegar tu servidor HTTP y tener la URL del endpoint a la mano.
  4. Instala la App en tu workspace.
  5. Una vez instalada la app en tu workspace podrás invocar el slash command desde el chat de Slack.

Otros recursos y lecturas complementarias