Esse projeto tem o objetivo de simular um sistema escolar simples focado no uso de APIs
- Necessário ter docker e docker-compose instalado.
-
Crie um arquivo .env com base no .env-sample. O sample já possui os dados utilizados para funcionar em desenvolvimento.
-
Faça o build da imagem docker
docker-compose build
-
Suba o banco de dados
docker-compose up -d db
-
Execute as migrações iniciais
docker-compose run --rm web python app/manage.py migrate
-
Carregue dados de exemplo iniciais (não é necessário, mas facilita na visualização inicial)
docker-compose run --rm web python app/manage.py loaddata app/initial_sample.json
-
Executar os testes e verificar a cobertura
docker-compose run --rm web coverage run app/manage.py test students classes
-
Obter o reporte dos testes e verificar a cobertura
docker-compose run --rm web coverage report
Também é possível gerar um html para melhor visualização com o comando (ficará salvo por padrão na pasta htmlcov):
docker-compose run --rm web coverage html
Para visualizar é só abrir o arquivo htmlcov/index.html
-
Para executar a aplicação
docker-compose run --rm --service-ports web
Feito isso, a aplicação estará rodando localmente (padrão porta 8000)
Para facilitar a compreensão dos endpoits disponíveis, a página inicial da aplicação já contém o que pode ser acessado e o formato esperado na forma de uma simples documentação Swagger, já com os campos possíveis de serem filtrados.
Dividi o projeto em duas apps distintas (Students e Classes), com o intuito de que estaria aberto a ser desenvolvidos diversas funções específicas mantendo a organização
O setor "Schemas" exibe os campos e seus tipos esperados pelos endpoints
- Por se tratar de um exemplo/amostra, os campos e modelos de dados estão simples e não muito elaborados, principalmente no quesito aulas/notas;
- Pelo mesmo motivo ainda não foi adicionado gerenciamento de permissões e usuário logado.