El de cuando hicimos el logotipo de CryptoAdvisor.Club

El de cuando hicimos el logotipo de CryptoAdvisor.Club

Hace ya un par de meses pusimos en marcha la beta de CryptoAdvisor.Club. De la misma forma que lanzamos el servicio a modo de producto mínimo viable, tratamos de reducir a la mínima expresión cualquier otro “complemento necesario” que rodeara al lanzamiento (página web con Notion, Integromat para automatizar publicaciones, etc.). Lo mismo con el logo.

Para las primeras versiones simplemente tomamos una imagen de stock con el logotipo de Bitcoin, y que cumpliera dos requisitos importantes:

»

El making of de CryptoAdvisor.Club

El making of de CryptoAdvisor.Club

Anteriormente te explicaba los motivos que nos llevaron a lanzar CryptoAdvisor.Club, el asistente virtual para la inversión en criptomonedas.

En este artículo te comparto algunos detalles técnicos sobre el stack y las herramientas que hemos utilizado para construir el bot de CryptoAdvisor.Club.

El stack técnico

  • Es una aplicación en PHP 7.4, con Symfony. CQRS, DDD, eventos…
  • Usamos intensivamente la librería BotMan, con algunos drivers propios para modificar algunos comportamientos a la hora de interactuar con menús y botones.
  • Varios workers se encargan tanto de los procesos periódicos (sincronización de precios y tratamiento de datos) como de consumir y tratar los eventos que se generan en la aplicación (eventos de dominio varios, analítica, sistema de feedback que sincroniza las sesiones de feedback con threads en nuestro Slack…)
  • MySql 8.0 ahora. DynamoDB mientras estuvimos en Lambdas en AWS.

Entorno y servicios complementarios

Infraestructura
  • Ansible y Terraform nos permiten provisionar y configurar el servidor y algunos servicios de AWS que utilizamos. Poco que decir: imprescindibles para abstraer y automatizar cualquier tema relacionado con servicios de infraestructura.
  • La aplicación corre en contenedores de Docker, tanto en el entorno de desarrollo como en producción. Usamos Github Actions para automatizar el build del contenedor que se usará en producción con la versión actualizada del código, pushearla al registry que tenemos en AWS, y hacer el pull de ese contenedor desde el servidor de producción, integrando también la ejecución de los tests, notificación a New Relic, Slack, etc.
  • Usamos ngrok para crear una URL pública que sirva de túnel a nuestro entorno local. Esto es imprescindible para poder llevar a cabo las pruebas durante el desarrollo. Tenemos varios bots de pruebas que usan estas URL públicas como webhooks. Los comandos para levantar y parar la aplicación en desarrollo automatizan la ejecución de ngrok en segundo plano, la notificación de la URL resultante a Telegram y copian la URL pública de ngrok al portapapeles. He compartido el script en un Gist aquí ».
Ngrok

Ngrok

»

CryptoAdvisor.Club: El asistente virtual para invertir en criptomonedas

CryptoAdvisor.Club: El asistente virtual para invertir en criptomonedas

Esta semana Albert Lombarte y yo ponemos en marcha CryptoAdvisor.Club, un asistente virtual en forma de bot de Telegram que puede ayudarnos a sacar mayor partido a nuestra cartera de criptomonedas. 🚀

Se trata de un side project en el que hemos trabajado los últimos dos meses, con la intención de aprender todo lo necesario para montar un chatbot: UX para interfaces conversacionales, librerías y herramientas disponibles, sistemas de analítica para bots, buenas prácticas para el diseño de la infraestructura técnica necesaria, particularidades de las diferentes plataformas de chat disponibles.

»