ScalaBot-Team / PalaBrot

GNU General Public License v3.0
5 stars 1 forks source link

Build Status Actions codecov

PalaBrot: Un bot para hacer las conversaciones menos peñazo

PalaBrot es un bot de Telegram que resume a través de distintas técnicas de procesamiento del lenguaje natural los últimos n mensajes de un grupo, resolviendo así las necesidades de un usuario que ante la avalancha de mensajes en un grupo quiere conocer qué es lo que se ha dicho pero sin tener que leer el resto de la conversación.

Tipo de aplicación y módulos

Como solución a este problema emplearemos un cliente de API de Telegram (la telegram Bot API) que recibirá distintas peticiones de los usuarios por un hook. Este cliente estará divido en los siguientes módulos:

Servicios externos y herramientas

Para la aplicación es necesario usar distintos servicios y herramientas. En primer lugar se necesita una base de datos para almacenar parte de los mensajes, la opción escogida ha sido ElasticSearch debido a principalmente sus capacidades de indexación de texto con analizadores propios y a su capacidad de la alta ingesta de mensajes que puede tener el bot, y que esta da garantías de escalabilidad.

Por otro lado para los logs emplearemos scala-logging como librería de logs y Logback como backend del log.

Por último para desarrollar el bot se usa Canoe como wrapper para la API de Telegram el cual a su vez está basado en la librería cats-effects que es una de las librerías básicas para orientar Scala a programación funcional pura.

Para los tests se utiliza el framework MUnit con la integración munit-cats-effect

Instrucciones / Instructions

Como gestor de tareas, usamos sbt que usa build.sbt como archivo de configuración y declaración. Para ejecutar los tests NO se debe usar:

build.sbt test
build.sbt coverage

Sino esta secuencia de comandos, que incluyen los necesarios para habilitar la generación de informes de cobertura realizar los tests y generar el informe de cobertura

sbt clean
sbt coverage
sbt test
sbt coverageReport

Integrantes

Este repositorio ha sido creado gracias a la plantilla https://jj.github.io/curso-tdd/temas/git

Usuario dirigido

Paco Pragmático

Suspicious123