Skip to content

Sistema para gerência de objetos pessoais emprestados a terceiros

License

Notifications You must be signed in to change notification settings

samuelalmeida95/giveMeBack-api

Repository files navigation

💻 Sobre o desafio


Olá! Este é um desafio SpringBoot + JPA + PostgresSQL para gerenciar seus pertences emprestados!
  • O objetivo é construir uma API para você não esquecer para quem emprestou cada coisa.

  • O usuário se cadastra e seus dados ficam salvos

  • A aplicação deve receber o item emprestado, a data de devolução prevista, e contato do amigo

  • Cada empréstimo tem 20 dias de prazo, ao cadastrar um item emprestado o sistema deve salvar a data atual

  • Ao devolver um Item o sistema deve salvar a data da devolução do Item

  • O sistema deve permitir avaliar um amigo após a devolução do empréstimo

  • Um Item só pode ser emprestado novamente caso o Amigo tenha recebido alguma avaliação

  • Um Amigo deve ter um Dono associado

  • Um Item emprestado precisa ter um Dono e um Amigo emprestimo associado

  • Um Item deve ter um status atual definido como EMPRESTADO ou DEVOLVIDO

Status do Desafio: Concluido

🚀 Funcionalidades disponiveis

[✔] Cadastro de Dono
[✔] Listagem de Donos
[✔] Listagem de Donos por id
[✔] Listagem de Donos por nome
[✔] Alteração de Dono por id
[✔] Remoção de Dono por id

[✔] Cadastro de Amigo
[✔] Listagem de Amigos
[✔] Listagem de Amigos piores avaliados
[✔] Listagem de Amigos melhores avaliados
[✔] Listagem de Amigos que são conhecidos por um Dono x
[✔] Listagem de Amigos por id
[✔] Remoção de Amigo por id

[✔] Cadastro de Item
[✔] Listagem de Itens
[✔] Listagem de Itens por id
[✔] Listagem de Itens por nome
[✔] Listagem de Itens EMPRESTADOS
[✔] Listagem de Itens DEVOLVIDOS
[✔] Listagem de Itens pertencentes a um Dono x
[✔] Emprestar um Item para um Amigo
[✔] Emprestar um Item NOVAMENTE para um Amigo x
[✔] Receber um Item de volta e avaliar o Amigo
[✔] Remoção de um Item

🥇 Aplicação disponivel no Heroku:

https://givemeback-api.herokuapp.com

🛠 Serviços disponíveis

👨‍💻 Dono:

[GET] https://givemeback-api.herokuapp.com/donos/buscar_por_nome?nomeDono=Samuel
[GET] https://givemeback-api.herokuapp.com/donos/buscar_por_id/4
[GET] https://givemeback-api.herokuapp.com/donos/listar_todos
[POST] https://givemeback-api.herokuapp.com/donos/adicionar
[PUT] https://givemeback-api.herokuapp.com/donos/alterar/3
[DELETE] https://givemeback-api.herokuapp.com/donos/deletar/1

   "id": 1,
   "nome": "Samuel",
   "whatsapp": "555-777-522"

🙅‍♂️ Amigo:

[GET] https://givemeback-api.herokuapp.com/amigos/buscar_por_nome?amigoEmprestimo=José
[GET] https://givemeback-api.herokuapp.com/amigos/buscar_por_id/8
[GET] https://givemeback-api.herokuapp.com/amigos/buscar_por_dono_item?idAmigo=2&idDono=2
[GET] https://givemeback-api.herokuapp.com/amigos/listar_todos
[GET] https://givemeback-api.herokuapp.com/amigos/buscar_melhores_avaliados
[GET] https://givemeback-api.herokuapp.com/amigos/buscar_piores_avaliados
[POST] https://givemeback-api.herokuapp.com/amigos/amigos/adicionar?nomeDono=Alladin
[PUT] https://givemeback-api.herokuapp.com/amigos/amigos/alterar/1
[DELETE] https://givemeback-api.herokuapp.com/amigos/deletar/1

   "id": 2,
   "nome": "Pedro",
   "whatsApp": "123",
   "endereco": "rua do Pedro",
   "amigoDono": "Steve Jobs",
   "avaliacao": "OTIMA"

🎁 Item:

[GET] https://givemeback-api.herokuapp.com/itens/buscar_por_id/1
[GET] https://givemeback-api.herokuapp.com/itens/buscar_por_nome?nomeItem=bone
[GET] https://givemeback-api.herokuapp.com/itens/listar_itens
[GET] https://givemeback-api.herokuapp.com/itens/status_itens?status=EMPRESTADO
[GET] https://givemeback-api.herokuapp.com/itens/status_itens?status=DEVOLVIDO
[GET] https://givemeback-api.herokuapp.com/itens/emprestados_para?idAmigo=3
[GET] https://givemeback-api.herokuapp.com/itens/meus_itens?idDono=2
[GET] https://givemeback-api.herokuapp.com/itens/meus_itens?idDono=2
[POST] https://givemeback-api.herokuapp.com/itens/emprestar_item?dono=1&idAmigoEmprestimo=1
[PUT] https://givemeback-api.herokuapp.com/itens/emprestar_novamente?idItem=7&idAmigoEmprestimo=1
[PUT] https://givemeback-api.herokuapp.com/itens/devolver/7?nomeAmigo=José&avaliacao=OTIMA
[DELETE] https://givemeback-api.herokuapp.com/itens/itens/deletar/7

👉 Item quando Emprestado:

   "id": 7,
   "nome": "Bicicleta",
   "nomeDono": "Steve Jobs",
   "descricao": "uma bicicleta",
   "status": "EMPRESTADO",
   "emprestado_para": "Pedro",
   "prazoDevolucao": "Cada emprestimo tem 20 dias de prazo.",
   "dataEmprestimo": "2021-06-03",
   "dataDevolucao": "2021-06-23"

👈 Item quando devolvido:

   "id": 7,
   "nome": "Bicicleta",
   "nomeDono": "Steve Jobs",
   "descricao": "uma bicicleta",
   "status": "DEVOLVIDO",
   "emprestado_para": "ninguém",
   "prazoDevolucao": "Cada emprestimo tem 20 dias de prazo.",
   "dataEmprestimo": "2021-06-03",
   "dataDevolucao": "2021-06-03"

🎯 Diagrama UML

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💚 by Samuel Almeida


About

Sistema para gerência de objetos pessoais emprestados a terceiros

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages