Em um ambiente corporativo as decisões são baseadas na fórmula mais ortodoxa possível, ou seja, as pessoas optam por escolher a linguagem de programação que sua equipe ou ela própria mais domina, o banco de dados da instalação, e assim por diante.
Já em um cenário acadêmico podemos ser mais ousados e fazer nossas escolhas com o objetivo de ser inovador. Buscar o ineditismo, trazer a inovação para dentro dos nossos projetos.
Minha primeira definição dentro desse projeto foi que deveria ser uma aplicação hospedada em uma nuvem e que seu funcionamento fosse 24/7. Além disso, o App deveria ser simples, pequeno e muito ágil.
Considerando essas premissas como uma direção a ser seguida, as escohas naturais foram Python, MongoDb (bd e nuvem) e Heroku para hospedar o aplicativo.
O “robô” foi desenvolvido tendo em mente a necessidade de alta performance. Seu código busca a linearidade para oferecer o menor tempo de resposta possível, sua estrutura é simples e lastreada em dois conjuntos de try/catch (o último dentro de um loop infinito), faz uso de apenas duas pequenas coleções em um banco de dados MongoDB na nuvem – sendo a primeira, uma coleção de campanhas, suas palavras-chave, um emoticon e a mensagem/link promocional, e a segunda coleção é apenas um registro de campanhas enviadas no dia por chat_id (trata-se de uma coleção que pode ser esvaziada diariamente, removendo-se os registros do dia anterior) – e os códigos-fonte da solução completa estão hospedados no GitHub.
Baixe um clone do repositório e fique à vontade para alterar o seu funcionamento. Divirta-se!
Grande abraço, Charles Miranda.