M3nin0/posso-faltar-bot

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# PossoFaltar Bot

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/efa06f5c45b2482b874f111002def805)](https://www.codacy.com/app/M3nin0/posso-faltar-bot?utm_source=github.com&utm_medium=referral&utm_content=M3nin0/posso-faltar-bot&utm_campaign=Badge_Grade)
[![Maintainability](https://api.codeclimate.com/v1/badges/283c6f37fa57ade22edd/maintainability)](https://codeclimate.com/github/M3nin0/posso-faltar-bot/maintainability)
[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![chatroom icon](https://patrolavia.github.io/telegram-badge/chat.png)](https://telegram.me/PossoFaltarBot)

Chatbot que utiliza de NPL baseado em intenções que faz a raspagem de dados do SIGA, para facilitar a interação dos alunos da Fatec com o sistema.

## Funcionalidades :star:

* Consultar todas as faltas;
  * Apresenta dicas para o usuário sobre as faltas.
* Consultar possibilidade de ausência;
* Realizar processamento de linguagem natural
  * Mais liberdade na interação com o usuário;
* Calcula probabilidade de reprovação com base nos pontos positivos e negativos de suas informações;
* Tenta motivar e ajudar o aluno com problemas de auxência.

## Interação :star:

A interação com o bot é feita em uma linguagem informal, sem a necessidade de muitas palavras. Inclusive, este é um bot que gosta de ajudar, e não vê a necessidade de muitas palavras para ajudar os alunos. Porém caso seja necessário, ele pode bater um papo.

### Interagindo com o bot :boom:

Abaixo é demonstrado algumas formas de interação que podem ser feitas com o bot.

* Perguntando para o bot se pode ou não faltar no dia em que a mensagem está sendo enviada

![posso faltar](./images/posso_faltar.png "Posso faltar hoje ?")

* Pedindo para verificar todas as faltas

![faltas total](./images/todas_faltas.png "Todas as faltas")

* O bot vendo a situação de suas faltas, te passa dicas sobre conteúdos para assistir

![ajuda](./images/recebe_ajuda.png "Ajuda do bot")

OBS: Caso seja necessário reiniciar a conversa basta digitar palavras relacionadas como:
* reset;
* recomeçar;
* desde o inicio;
* começar novamente.

Todas essas podem ser usadas a qualquer momento.

### Demonstração de interação e funcionamento :boom:

[![DEMO](./images/back-channel.png)](https://youtu.be/DjYLdhQyDbs)

* OBS: Clique na imagem para ver o bot funcionando

## Plataformas :fire:

Por ser feito utilizando o BotFramework, o bot pode ser utilizados em várias plataformas dentre elas:
* Telegram;
* Skype;
* Slack;
* Messeger;
* Bing channel;
* Twilio.

## Técnologias utilizadas :fire:

* BotFramework;
* NodeJS;
* PhantomJS;
* Dialog Flow.

## ToDo :godmode:

- [X] Cálculo probabilístico sobre a reprovação do usuário;
- [X] Porcentagem de presenças;
- [X] Adicionar mais vida aos diálogos.