##Repositório criado para acompanhar os exercícios do módulo Django do Bootcamp DevPro.
- Criar uma aplicação web aplicando os "twelve factor app", que são as boas práticas de desenvolvimento.
###Metodologia
- Base de código: GitHub e Heroku para controle de versão e deploys.
- Dependências: Declaramos e configuramos com o a biblioteca pip-tools e para isolarmos o ambiente utilizamos o pyenv.
- Configurações: Personalizamos algumas configurações como o usuário padrão do Django. Também utilizamos a ferramenta python-decouple para as nossas configurações de instância deixando ela no nosso .env ou nas variáveis de ambiente.
- Serviços de Apoio: Utilizamos algumas ferramentas como o GitHub Actions, log do Heroku e do Sentry para verificar erros no sistema.
- Build, release, run: Ferramenta para linter - flake8; testes com o pytest e build com o Heroku e GitHub Actions.
- Processos: Execute a aplicação com um ou mais processos que não armazenam estado - nosso banco de dados está isolado da aplicação.
- Vínculo de porta: Configuramos uma porta específica para o nosso Postgres.
- Concorrência: Instalamos o servidor de aplicação gunicorn que vai gerenciar os processos.
- Descartabilidade: Maximizar a robustez com inicialização e desligamento rápido.
- Desenvolver para semelhantes: Separamos as configurações em arquivos diferentes, conectamos com S3 e imulamos esse composto no sistema arquivo local.
- Logs: Tratando logs como fluxo de eventos delegados para o Sentry.
- Processos de Admin: Executar tarefas de administração e gerenciamento com processos pontuais buscando sempre automatizar ao máximo.
Aplicação disponível em https://rhsmdjango.herokuapp.com/