Sistema para gerência de objetos pessoais emprestados a terceiros

Overview

💻 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


You might also like...

Aplicativo To Do com sistema de autenticação e database.

Aplicativo To Do com sistema de autenticação e database.

TO DO APP Aplicativo faz a registra um usuário e suas tarefas no banco de dados. 🎯 Sobre Este aplicativo faz criação e a autenticação de um novo usuá

Sep 21, 2022

GFT START #2 Java - Mentoria #1: Aprendendo Orientação a Objetos

GFT START #2 Java - Aprendendo Orientação a Objetos 21/06/2021 - Mentoria #1: Aprendendo Orientação a Objetos Domínio: Bootcamps são eventos fantástic

Aug 6, 2022

Programación - 04 Programación Orientada a Objetos. 1DAM. Curso 2021-2022

Programación - 04 Programación Orientada a Objetos. 1DAM. Curso 2021-2022

Programación - 04 Programación Orientada a Objetos Tema 04 Programación Orientada a Objetos. 1DAM. Curso 2021/2022. Contenidos Programación Orientada

Dec 27, 2022

Mentoria: Abstraindo situações do mundo real com Orientação a Objetos

 Mentoria: Abstraindo situações do mundo real com Orientação a Objetos

Mentoria: Abstraindo situações do mundo real com Orientação a Objetos

Aug 5, 2022

Programación - 05 Programación Avanzada Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2021-2022.

Programación - 05 Programación Avanzada Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2021-2022.

Programacion-05-Ejercicios-2021-2022 Programación - 05 Programación Avanzada Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2

Dec 27, 2022

Programación - 04 Programación Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2021-2022.

Programación - 04 Programación Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2021-2022.

Programacion-04-Ejercicios-2021-2022 Programación - 04 Programación Orientada a Objetos. 1DAM. Ejercicios realizados por el alumnado. Curso 2021-2022

Dec 27, 2022

Programación - 05 Programación Avanzada Orientada a Objetos. 1DAM. Curso 2021-2022

Programación - 05 Programación Avanzada Orientada a Objetos. 1DAM. Curso 2021-2022

Programación - 05 Programación Avanzada Orientada a Objetos Tema 05 Programación Avanzada Orientada a Objetos. 1DAM. Curso 2021/2022. Contenidos Heren

Dec 27, 2022

Matéria 3 - Programação Orientada a Objetos

Matéria 3 - Programação Orientada a Objetos

Matéria | Java | Nosso Grupo ♡ Matéria 3 - Programação Orientada a Objetos (Java) Nessa matéria aprendemos como funciona o Banco de Dados! Professora:

Apr 21, 2022

Lab "Criando um Banco Digital com Java e Orientação a Objetos".

Criando um Banco Digital com Java e Orientação a Objetos 02/08/2021 - Mentoria #1: Tire Suas Dúvidas Sobre Orientação a Objetos Desafio: Considerando

Dec 6, 2022

Trabajo práctico de la materia Programación Orientada a Objetos. Grupo 1, equipo 8. Aplicación de gestión de restaurantes desarrollada en Java. UNAL sede Medellín, semestre 2022-1.

i-Lunch Materia: Programación Orientada a Objetos Profesor: Jaime Alberto Guzman Luna Institución: Universidad Nacional de Colombia sede Medellín Seme

Nov 12, 2022

Projeto desenvolvido durante a semana Spring React , onde utilizamos Netlify e Heroku para subir o projeto na nuvem

Projeto desenvolvido durante a semana Spring React , onde utilizamos  Netlify e Heroku para subir o projeto na nuvem

projeto-sds3 BACKEND DO PROJETO - https://sds3-backend-guilhermepontes.herokuapp.com/ FRONT END DO PROJETO - https://sds3-guilhermepontes2.netlify.a

Aug 18, 2021

Repositório referente ao código de uma classe data, com testes JUNIT, classe de exceção própria e classe aplicação para demonstrar as diversas funcionalidades da classe data

Exercicio-Data Repositório referente ao código de uma classe data, com testes JUNIT, classe de exceção própria e classe aplicação para demonstrar as d

May 4, 2021

Projeto para consulta de filmes na API data IMDB e construção de playlists.

Projeto para consulta de filmes na API data IMDB e construção de playlists.

Projeto IDP: Filmes API ✍️ API Requirements Must to have Comunicar com uma API externa (desenvolvida pelo colaborador ou por terceiros). Persistir dad

Oct 9, 2022

Escrevendo Testes para o Blog Pessoal

Escrevendo Testes para o Blog Pessoal

Implementando testes com o Spring Testing no Blog Pessoal Nesta atividade iremos implementar os testes nas Camadas Model, Repository e Controller da C

Dec 12, 2022

Material de apoyo para el laboratorio de Estructuras de Datos

Material de apoyo para Estructuras de Datos 2022-1 Autor: Emmanuel Cruz Hernández Descripción Material y ejemplos de apoyo para el laboratorio de Estr

Jan 6, 2022

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

🚧 EM CONSTRUÇÂO 🚧 Um pouco sobre Serenity e o projeto desenvolvido Serenity_BDD é uma biblioteca de código aberto que visa tornar a ideia de documen

Aug 30, 2022

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

🚧 EM CONSTRUÇÂO 🚧 Um pouco sobre Serenity e o projeto desenvolvido Serenity_BDD é uma biblioteca de código aberto que visa tornar a ideia de documen

Aug 30, 2022

Repositorio para el Proyecto PSA

proyecto-psa Status Ejecución Test Manual: Status Ejecución Test Automático: 1. Repositorio para el Proyecto PSA Se propone una estructura de mono-rep

Nov 16, 2021

Plugin para minecraft 1.16+ (Spiggot/Bukkit)

TIERRA O NADA! Plugin para Minecraft Quieres pasar Minecraft de otra forma? Prueba con este plugin para Spiggot/Bukkit Minecraft Versión: 1.16+ Plugin

Nov 12, 2022
Comments
Owner
Samuel Almeida
O aprendizado é contínuo e sempre haverá um próximo nível.
Samuel Almeida
Programação Orientada a Objetos (POO) em Java - Contexto no sistema bancário

Criando um Banco Digital com Java e Orientação a Objetos 02/08/2021 - Mentoria #1: Tire Suas Dúvidas Sobre Orientação a Objetos Desafio: Considerando

null 2 Dec 17, 2022
Distributed-messenger - 👨‍👨‍👧 Sistema de chat utilizando sockets desenvolvido para a disciplina de Sistemas Paralelos e Distribuídos

Distributed Messenger ??‍??‍?? Sistema de chat utilizando sockets desenvolvido para a disciplina de Sistemas Paralelos e Distribuídos Requisitos do Pr

Eloísa Bazzanella 5 Feb 19, 2022
Sistema de administración para gimnasios.

Armstrong Desktop Sistema de administración para gimnasios Made with love, made with JavaFX Contenido Características Tecnologías Configuración inicia

Ociel 10 Nov 5, 2022
Aplicación para convertir números entre base con y sin decimales para la certificación de Kotlin Developer de JetBrains Academy.

Kotlin Number Base Converter Aplicación para convertir números entre distintas bases con y sin decimales para la certificación de Kotlin Developer de

José Luis González Sánchez 1 Jan 13, 2022
Repositório focado para a Turma 2022.2 do Cesmac para disciplina Programação Orientada a Objeto

Sobre Repositório focado para turma de POO - Cesmac - 2022.2 Links úteis IntelliJ Download Java Doc - JDK 18 2Devs Podcast: SimpleCast Spotify Como se

Rachid Calazans 12 Dec 8, 2022
Uma API REST com funcionalidades de CRUD que simula um sistema de leilão 💰.

Leilão API REST Essa aplicação foi feita para ajudar aqueles que ainda estão com alguma dúvida, sobre o funcionamento de um API REST em Spring. Já que

Fábio Henrique 4 Feb 23, 2022
Sistema de control de computadoras con base de datos

Sistema sobre control de computadoras con base de datos en PostgreSQL donde se puede registrar una computadora, en procesos podemos buscar una computadora según su numero de serie y registrar el estado actual de una computadora.

Aarón Rojas 1 Jan 23, 2022
Sistema Abastecimento Alcool Gasolina

SistemaAbastecimento_AlcoolGasolina ?? Índice Sobre Tecnologias utilizadas Preview ?? Preview Android.Emulator.-.Pixel_2_API_25_5554.2022-01-18.19-59-

Henrique Marinho Teixeira 2 Jan 19, 2022
Um sistema de hospital feito em Spring Boot, contendo alguns CRUD's, e utilizando algumas famosas dependências, como o Hibernate. Vale destacar a interface inspirada no jogo Minecraft.

Introdução ✏ Esse projeto é uma atividade da disciplina de Design, Arquitetura e Construção de Software [DACS]. O objetivo do projeto é simular um sis

Ramon Victor Cardoso 12 Nov 6, 2022
MVP de Sistema de delivery de comida (como Uber eats ou Ifood)

Repositório para acompanhar a minha evolução no curso Especialista Spring REST da Algaworks ??️ Sobre o Projeto: MVP de Sistema de delivery de comida

Rayane Maciel 18 Dec 29, 2022