Projeto de restAPI para backend de uma escola.
- O projeto foi feito no seguindo o padrão MVC (model view controller).
- Linguagem Python.
- Frameworks usados: Flask e Flask_restfull.
- Todos os modulos do python estão no arquivo
Requirements.txt
(estão instalados na virtualenv na pasta nomeadavenv
).
Toda entrada e saída de dados é em no formato JSON
.
Para validar os metodos POST utilizei o app Postman, dentro da pasta postman-tests
.
Para executar o projeto basta executar o arquivo main.py
.
No arquivo endpoints.py
estão todas as rotas:
"/health-check"
"/aluno"
"/gabaritos"
"/provas/<cpf>/<idProva>"
"/aprovados"
- Responsável pelo teste dos endpoints.
- Metodo Get retorna 'ok' caso esteja funcionando.
- Cadastra o aluno no sistema através do metodo POST.
- O sistema é limitado a 100 alunos cadastrados, caso o usuario tente criar mais que 100, haverá o retorno ("Numero maximo de alunos cadastrados").
- Cadastra todas as questões das provas e as respostas através do metodo POST.
- O sistema permite cadastrar 10 questões para cada prova e 10 respostas.
- Rota resposavel por cadastrar as respostas do aluno para a prova com metodo POST.
- O calculo da nota acontece após as respostas serem salvas.
- A media geral do aluno também é calculada cada vez que ele responde uma questão (a nota final é a média aritmética das notas de todas as provas).
- Responsavel por retornar lista de alunos aprovados em formato json com o metodo GET (Para um aluno ser aprovado sua media precisa ser acima de 7).
Após executar o arquivo main.py
, devem ser inseridos gabaritos e alunos, no diretorio postman-tests
existem alguns exemplos que foram utilizados durante a produção da aplicação.
Através do metodo POST podem ser inseridos alunos e gabaritos.
Cadastrar aluno alunos:
Cadastrar gabaritos:
A resposta de provas também é feita pelo Metodo POST, da seguinte forma:
Resposta de provas (CPF e ID da prova são enviados junto no cabeçalho):
A lista de alunos aprovados é retornada em modo json com metodo GET na rota /aprovados: