Desafio for Python Full Stack Developer
1 - Crie um sistema Back-End, que mantém os dados de uma Entidade “Produto”. Essa entidade possui os atributos nome, descrição e valor. Esse Back-End deve prover toda a manutenção dessa Entidade “Produto“, como incluir Produto, Remover Produto, etc. Deve ser usada a stack Python+Django Rest Framework para a construção deste Back-End de APIs.
2 - Crie um sistema Front-End, que apresente os dados de sua Entidade Produto, da Parte 1. Esse Front-End deve prover toda a interface gráfica para manutenção da Entidade Produto, como incluir Produto, Remover Produto etc. Deve ser usada a stack ReactJS para a construção deste Front-End.
3 - Crie uma infraestrutura para esses sistemas, com as ferramentas Docker e Docker Compose.
Nessa infraestrutura deverão existir 3 servidores: Front-End-Server, Back-End-Server e DB-Server.
No servidor Back-End-Server deve ser instalado o sistema da Parte 1.
No servidor Front-End-Server deve ser instalado o sistema da Parte 2.
No servidor DB-Server deve ser instalado o banco de dados dos sistemas.
O Banco de Dados deve ser PostgreSQL ou MySQL.
Crie um README.md com instruções para instalação e inicialização dos sistemas em modo desenvolvimento, ou seja, na máquina local.
- A solução que foi implementada para atender tais requisitos é uma apliação web chamada Controle de Produtos.
O conjunto de funcionalidade que o Controle de Produtos disponibiliza são:
- Controle de dados sobre produtos por meio de uma plataforma web;
- Disponibilização de um serviço web para consumo dos dados manipulados no sistema.
- Sistema de autenticação de usuários e controle de acesso a API.
- Framework Django;
- Django Rest Framework;
- Banco de dados PostgreSQL;
- O biblioteca JavaScript de código aberto React.js;
- Containers Dockere e o orquestrador de containers, Docker Compose;
- Python3
- PIP(instalador de pacote Python padrão)
- Docker e Docker Compose
1 - Faça o clone/download deste respositório para seu host; 2 - Dentro da pasta raiz do respositório crie e inicie uma Virtualenv(é uma ferramenta para criar ambientes Python isolados):
python3 -m venv .venv
. .ven/bin/activate
3- Ainda dentro da pasta raiz do respositório execute o build do docker-composed essa forma:
- docker-compose build
4- Realize migrações do banco de dados:
- docker-compose run web python manage.py migrate
5- Crie um usuário para ter acesso ao sistema:
- docker-compose run web python manage.py createsuperuser
3- Execute os 3 servidores de aplicação(BD,WEB e FRONTEND) ao mesmo tempo com:
- docker-compose up
6- Acesse os links dos servidores de Back-end e Front-end da aplicação pelo log do terminal e faça o login com o seu usuário criado:
7- Pronto! Você já tem acesso ao sistema de Controle de Produtos.