Skip to content

Sistema projetado para disciplina de Sistemas Distribuídos - UESC.

License

Notifications You must be signed in to change notification settings

GuilhermeSenna/NodeJS-SD-pratica

Repository files navigation

NodeJS-SD-pratica

Programa utilizado para disciplina de SD (Sistemas distribuídos) sendo realizado um deploy no heroku.

Sistema projetado para trabalhar em paralelo/cooperativamente com outros sistemas dos colegas da disciplina, dessa forma os sistemas atuarão como um sistema distribuído simples. Os sistemas foram criados para recebem certas demandas e também se comunicar e decidir nos algoritmos de eleição tanto do valentão (bully) quanto do anel (ring).

Rotas presentes:

  • Padrões: ('/', '/hello', '/clientes', '/pag1', '/pag2', '/pag3')
  • '/info', com métodos GET e PUT
  • '/peers', com métodos GET e POST
  • '/peers/:id', com métodos GET, PUT e DELETE
  • '/recurso', com métodos GET, POST, PUT e DELETE
  • '/resolver', com métodos GET {comentado} e POST
  • '/coordenador', com método GET
  • '/eleicao', com método GET e POST
  • '/eleicao/coordenador', com método POST
  • '/reset', retorna o conteúdo do peers e info para o padrão

Checagens:

  • Checa se o corpo da requisição está vazio
  • Checa se há chaves com valor vazio
  • Checa se há chaves vazias
  • Checa se a chave inserida é válida (Array com as chaves possíveis) - Case and Accent sensitive
  • Checa se todas as chaves necessárias estão inseridas na requisição
  • Checa se o usuário está tentando inserir um valor UNIQUE (ID e NOME) - Peers
  • Checa se está buscando um usuário por ID inexistente

Funcionalidades:

  • Código modularizado
  • Implementação de múltiplas requisições externas e outros métodos assíncronos.
  • Armazenamento de logs dos procedimentos realizados durante uma eleição. (Logs online {não criado por mim})
  • Permite alterar só o que foi passado (Aonde não há chaves necessárias, como no método PUT)
  • Ao editar um peer, checa se o novo ID/nome já não está sendo usado por outro usuário (Porém, permite alterar informações UNIQUE se estiver manipulando um objeto que contenha o mesmo ID do passado por requisição)
  • Códigos de resposta HTTP usados:
    • 200 (OK)
    • 400 (BAD REQUEST)
    • 401 (ACCESS DENIED)
    • 404 (NOT FOUND)
    • 409 (CONFLICT)
    • 410 (GONE)

About

Sistema projetado para disciplina de Sistemas Distribuídos - UESC.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published