Esta é uma api para agendamentos de salas de reunião.
Esse sistema deve receber requisições de agendamento contendo título, sala e período de agendamento e deve apenas reservar a sala, se a sala requisitada estiver disponível. Caso contrário, deve apresentar um erro.
- Disponibilizar o projeto em algum repositório
- O Webservice deve seguir os princípios REST
- Salvar as informações necessárias em um banco de dados (relacional ou não), de sua escolha
- Testes automatizados com informação da cobertura de testes
- Gerar logs das ações
- Documentar como rodar o projeto
- Uma API para criar, editar e remover salas de reuniões
- Uma API para criar, editar e remover agendamentos
- Impedir agendamentos simultâneos(Model)
- Impedir agendamentos simultâneos(URL)
- Uma API para listar e filtrar agendamentos por data e sala
- Rodando em Docker com Postgres e gunicorn
- Usar como path a pasta onde encontra-se o arquivo
Dockerfile
docker-compose up --build
- Pode haver algum problema de permissão no diretório do postgre então usar o seguinte comando:
sudo chown $USER:$USER postgres_data/ -R
-
Usar como path a pasta onde encontra-se o arquivo
manage.py
-
Configurar o banco de dados de sua preferência em
agenda_me/agenda_me/settings.py
pip install -r requirements.txt python manage.py runserver
-
Listar todas as salas:
-
Obter dados de uma sala:
-
Criar uma sala:
- Campos:
{ "name" : "Sala 01 Xpto" }
- [POST] http://localhost:8000/sala/
- Editar uma sala:
- Campos:
{ "name" : "Sala 01 Xpto" }
- Remover uma sala:
- [DELETE] http://localhost:8000/sala/1
-
Listar todas as agendas:
-
Obter dados de uma agenda:
- Criar uma agenda:
- Campos:
{ "titulo": "Reuniao ABC", "sala" : "1", "date_init" : "2019-01-01 14:30", "date_end" : "2019-01-01 16:30" }
-
Editar uma agenda:
- Campos:
{ "titulo": "Reuniao ABCDeE", "sala" : "1", "date_init" : "2019-01-01 14:30", "date_end" : "2019-01-01 16:30" }
-
Remover uma agenda:
- [DELETE] http://localhost:8000/agenda/1
-
Buscar agenda de uma sala em específica
-
Buscar agenda entre datas em específicas
-
Buscar agenda entre datas em específicas e sala específica
python -W ignore manage.py test
coverage erase; coverage run --source=salas,agenda manage.py test; coverage report
Name | Stmts | Miss | Cover |
---|---|---|---|
agenda/models.py | 24 | 0 | 100% |
agenda/serializers.py | 19 | 0 | 100% |
agenda/views.py | 25 | 0 | 100% |
salas/models.py | 8 | 0 | 100% |
salas/serializers.py | 8 | 0 | 100% |
salas/views.py | 11 | 0 | 100% |
Total | 95 | 0 | 100% |
- Deixei também o arquivo do
postman
para testar se quiser:
Maga.postman_collection.json
- Não fiz o login porque não pedia na documentação.