@NovatoDev
May 31, 2021 · View on GitHub

@NovatoDev
O @NovatoDev é um bot no Telegram que tem como objetivo auxiliar alunos iniciantes em programação. Nossa missão é orientar os primeiros passos dos nossos usuários nesse maravilhoso universo. Aqui, esclarecemos conceitos básicos como: preparação de ambiente (instalação), tipagem, operadores, variáveis, IF/ELSE e etc. Mediante a dúvida, retornamos a explicação, exemplos, cursos e a aplicação completa.
Sumário
Processo
A imagem abaixo descreve visualmente o processo da conversa. Desde da saudação do bot (Início), passando pelas opções de conteúdo e por fim, apresentando a escolha do usuário em finalizar a conversa ou retorno ao início. Esse processo tem como objetivo facilitar o entendimento acerca do funcionamento do @NovatoDev e mapear as saídas e opções à disposição do usuário final.

Desenvolvimento
No desenvolvimento do bot utilizamos a biblioteca python-telegram-bot que disponibiliza, por meio de classes, vários componentes já integrados com a API do Telegram, facilitando o desenvolvimento. Para fazer a leitura do arquivo .env do nosso token do bot, utilizamos a python-dotenv junto com a própria biblioteca do Python para ler a váriavel de ambiente.
Para facilitar no desenvolvimento e ajudar a manter os padrões da linguagem foi utilizado o pylint.
Infraestrutura
Nossa infraestrutura procura utilizar as melhores práticas DevOps. Com conceitos e processos bem aplicados em pipelines, testes automatizados, gerenciamento de confiabilidade e deploys automáticos.
Fluxograma
No modelo abaixo é possível visualizar todo nosso processo de integração contínua. Utilizamos ferramentas e configurações do próprio github para nos auxiliar e deixar nosso projeto muito mais automatizado, prevenindo assim, erros manuais. Além é claro do aumento da produtividade operacional.

Notificação
Criamos processos para automatizar e alertar nosso time sobre movimentações no repositório do código fonte. Utilizando a ferramenta Github Actions montamos um fluxo para alertar o time sobre novos pull requests e releases.
Aplicação:

Deploy
Realizar um deploy no Heroku é simples e tranquilo de se fazer. Exatamente por isso que decidimos automatizar esse processo junto com o lançamento de release. Basicamente utilizamos a actions oficial do Heroku, junto com as boas práticas de segurança do github para aplicar a step nesse modelo.
Aplicação:
- name: Deploy from Heroku
uses: akhileshns/heroku-deploy@v3.12.12
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "novato-dev"
heroku_email: ${{secrets.HEROKU_EMAIL}}
remote_branch: "main"
if: env.PR_RELEASE_LABEL > 0