README.md

June 20, 2021 · View on GitHub

"# IClinic Challenge"

codecov

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.

Heroku Servers

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.

Resources

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.