- 1. Preámbulo
- 2. Resumen del proyecto
- 3. Objetivos de aprendizaje
- 4. Consideraciones generales
- 5. Criterios de aceptación mínimos del proyecto
- 6. Pistas, tips y lecturas complementarias
Ver proyecto roman-numerals
.
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.
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.
-
Instalar y usar módulos con npm
-
Configuración de package.json
-
Configuración de npm-scripts
-
Pruebas unitarias (unit tests)
-
Pruebas asíncronas
-
Uso de mocks y espías
-
Módulos de CommonJS
-
Uso de linter (ESLINT)
-
Uso de identificadores descriptivos (Nomenclatura y Semántica)
-
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)
-
Manejo de rutas
-
Uso y creación de middleware
-
Consulta o petición (request) y respuesta (response).
-
Cuerpo (body)
-
Verbos HTTP
-
Codigos de status de HTTP
-
Encodings y JSON
- cloud-functions
-
Slash commands de Slack
- 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.
/roman-numerals MMXX
2020
/roman-numerals 2020
MMXX
/roman-numerals help
/roman-numerals version
Dos endpoints:
-
GET /
: Debe responder con un objeto JSON con dos propiedades (name
yversion
). 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.
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)
Para poder trabajar en este proyecto necesitas seguir estos pasos:
- 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.
- Crea una App en la plataforma para developers de Slack
y asóciala al workspace que hayas creado en el punto
1
. - 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.
- Instala la App en tu workspace.
- Una vez instalada la app en tu workspace podrás invocar el slash command desde el chat de Slack.