Skip to content

cleberpereiradasilva/python-django-agendamento

Repository files navigation

Django - Agendamentos

Esta é uma api para agendamentos de salas de reunião.

Cenário

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.

Requisitos

  • 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

Entregáveis

  • 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

Como rodar (docker-compose)

  • 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

Como rodar (sem docker-compose)

  • 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
    

Urls

Salas






Agendas




  • 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"
     	}
    





Rodar os Testes

  python -W ignore manage.py test 

Cobertura de Testes

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%

Outros testes

  • Deixei também o arquivo do postman para testar se quiser:

Maga.postman_collection.json

Login

  • Não fiz o login porque não pedia na documentação.

License - MIT

MIT

About

Este é uma api para agendamentos de salas de reunião.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages