Neste projeto eu desenvolvi um sistema de banco de dados com 3 entidades: Imóveis (Properties), Anúncios (Adverts) e Reservas (Bookings). Um imóvel pode ter
diversos anúncios, mas um anúncio é referente apenas a um imóvel. Um anúncio pode ter
várias reservas, mas uma reserva se refere a apenas um anúncio.
Para montar este sistema eu utilizei o Django Rest Framework juntamente com o banco de dados SQLite e criei os arquivos Dockerfile e docker-compose.yml para rodar a aplicação com o Docker.
Após cada um dos passos, haverá um exemplo do comando a ser digitado para fazer o que está sendo pedido.
- Realize o clone do projeto no diretório de sua preferência e depois acesse o diretório:
git clone git@github.com:humberto-bonadiman/real-state-agency.git
cd real-state-agency
- Crie o ambiente virtual para o projeto:
python3 -m venv .venv && source .venv/bin/activate
- Instale as dependências:
python3 -m pip install -r requirements.txt
- Aplique as migrations do projeto:
python manage.py makemigrations
python manage.py migrate
- Rode o projeto:
python manage.py runserver
Para já criar alguns dados no banco de dados utilize o comando abaixo:
python manage.py loaddata properties/seed/0001_properties.json
Para criar e iniciar os contêineres:
Obs.: Com o comando abaixo o docker fica rodando no terminal.
docker-compose up
Para criar e iniciar os contêineres em stand-by:
docker-compose up -d
Para realizar apenas a etapa de build das imagens que serão utilizadas:
docker-compose build
Para paralisar e remover todos os contêineres e seus componentes como rede, imagem e volume:
docker-compose down
Para remover as imagens criadas após o comando docker-compose down você pode fazer remover pelos id. Por exemplo, se você possuir duas imagens com os ids 66ee964ad49b e 55caede2ba47 você pode usar o comando abaixo pegando somente os dois primeiros caracteres do id:
docker rmi -f 66 55
Para executar os testes certifique-se de que você está com o ambiente virtual ativado. Executar os testes
python manage.py test
Executar os testes da camada model
python manage.py test properties.tests.models.tests
Executar os testes da camada view
python manage.py test properties.tests.views.tests
Executar os testes de uma classe específica -> .path.to.file.ClassName
python manage.py test properties.tests.views.tests.GetAllPropertiesTest
O Python oferece um recurso chamado de ambiente virtual que permite sua máquina rodar, sem conflitos, diferentes tipos de projetos com diferentes versões de bibliotecas.
- criar o ambiente virtual
$ python3 -m venv .venv
- ativar o ambiente virtual
$ source .venv/bin/activate
- instalar as dependências no ambiente virtual
$ python3 -m pip install -r dev-requirements.txt
Com o seu ambiente virtual ativo, as dependências serão instaladas neste ambiente. Caso precise desativar o ambiente virtual, execute o comando "deactivate". Lembre-se de ativar novamente quando voltar a trabalhar no projeto.
Para acessar a documentação você deve rodar a aplicação com o comando python manage.py runserver e depois entrar no http://127.0.0.1:8000/docs/.