README.md
June 20, 2021 · View on GitHub
"# IClinic Challenge"
Projeto Django Rest Framework, baseado em diversas fontes de pesquisa e cursos que fiz para a melhor arquitetura e separação das responsabilidades.
A arquitetura que uso, me baseei no livro publicado por Pydanny (Daniel Feldroy) Two Scoops of Django 3.x
Para esse projeto decidir usar o Sqlite para banco de dados, mas costumo usar o PostgreSQL. Decisão tomada apenas por eficiência de tempo
Para a utilização do projeto é necessário ter o Pipenv instalado na máquina.
Usando o projeto.
1 - Digite no terminal, estando dentro do projeto, digite.
pipenv shell
2 - Após instalação do projeto e dependências, use no terminal.
pipenv install
3 - Rodar os testes
pipenv run pytest . --cov=.
4 - Para usar o projeto digite.
python manage.py runserver
Esse projeto, eu criei dois ambientes, staging e production.
iclinic-challenge-andre-stag : https://iclinic-challenge-andre-stag.herokuapp.com/docs/
iclinic-challenge-andre-prod : https://iclinic-challenge-andre-prod.herokuapp.com/docs/
O Projeto contem CI/CD com o Heroku e testes integrados.

Ambos os ambientes estão com a mesma configuração.
Os recursos que utilizei são:
Heroku Postgres -> Banco de dados.
New Relic APM -> Para monitoria da aplicação e análise de erros.
Sentry -> Para monitoria das exceções da aplicação.

Adicionei Proxy reverso para encobrir o servidor e o PgBouncer para gerenciar as conexões com o banco de dados.
A modelagem do banco de dados fiz dessa forma para ganhar tempo, mas o correto, para cada chave ter uma tabela separada para alocar os dados.