O projeto consiste em dar assistência ao usuário a comprar sua cerveja favorita no próprio aplicativo de acordo com a localização desejada.
- Problema social a ser trabalhado
- Impacto e consequência do problema social na sociedade
- A solução
- Software
- Tecnologias utilizadas
- Tabelas do banco de dados
- Documentação do Swagger
- Rotas
- Autoras
- Referência
Experiência social do consumidor: O Brasil é um dos maiores consumidores de cerveja do mundo, o que por sua vez faz com que a cerveja seja uma parte importante da cultura e da tradição dos brasileiros.
Economia: Primeiramente, pode haver um impacto na economia local, uma vez que o consumidor pode optar por comprar a cerveja de outra marca ou mesmo deixar de consumi-la, o que pode afetar a demanda e, consequentemente, a produção e distribuição da cerveja em questão. Isso pode prejudicar os negócios locais que comercializam essa cerveja, incluindo bares, restaurantes e lojas de bebidas.
Visando as deficiências encontradas, nossa proposta é a de trazer para o consumidor a facilidade de encontrar a partir de sua preferência ou de acordo com a preferência de seus amigos, um estabelecimento que sirva a cerveja que mais lhe agrada, podendo inclusive já verificar o preço e optar pela melhor escolha, visando seu custo e benefício.
Esse aplicativo foi projetado para permitir que os consumidores pesquisem por cervejas específicas e encontrem locais de venda próximos que oferecem essas cervejas, permitindo que os usuários pesquisem por nome de marca, estilo de cerveja e região de origem. O aplicativo utiliza informações de geolocalização para mostrar aos usuários os locais de venda mais próximos que oferecem a cerveja procurada. Para incentivar o uso do aplicativo, os fabricantes de cerveja e os locais de venda poderiam oferecer promoções exclusivas para os usuários ou reversão do valor dessa promoção para entidades sem fins lucrativos.
- IDE Utilizada: Spring Tool Suite/ Spring Security / Eclipse;
- Versionamento de códigos: Git, GitHub, Sourcetree;
- Banco de dados utilizado: Oracle;
- Interface do banco de dados: SQL Developer;
- Arquitetura MVC.
Para as tabelas desenvolvidas neste projeto foi preciso usar um identificador único, que no banco de dados é chamado de chaves primárias (PK). É importante ressaltar que as chaves primárias não podem receber valores repeditos e tão pouco nulos.
Pode-se observar ainda que nas tabelas de produtos, requisiões e produto/estabelecimento utiliza-se as chaves primárias de outras tabelas e elas são denominadas chaves estrengeiras (FK) e tem como objetivo identificar a relação entre elas.
idUsuario (PK) | nomeCompleto | senha | |
---|---|---|---|
1 | Aisla Alcântara | [email protected] | abc123 |
2 | Carolaine Marquezini | [email protected] | abc123 |
3 | Daiane Goncalves | [email protected] | abc123 |
4 | Marília Fileto | [email protected] | abc123 |
5 | Viviane Neres | [email protected] | abc123 |
idCategoria (PK) | tipoCategoria |
---|---|
1 | pilsen |
2 | lager |
3 | ipa |
idProduto (PK) | idCategoria (FK) | nomeProduto | precoProduto | volume |
---|---|---|---|---|
1 | 1 | Patagonia Bohemian | 5,79 | 350 ml |
2 | 2 | Quilmes | 7,90 | 473 ml |
3 | 2 | Budweiser zero | 3,99 | 269 ml |
4 | 3 | Colorado Indica | 4,72 | 350 ml |
idEstabelecimento (PK) | Logradouro | Bairro | nomeBar |
---|---|---|---|
1 | Rua Américo Brasiliense | Cambui | Tatu Bola |
2 | Rua Dr. Heitor Penteado | Joaquim Egídio | Bar do Caixote |
3 | Av. Barão de Itapura | Taquaral | Dom Brejas |
4 | Rua Horácio Leonardi | Barão Geraldo | Estação Barão |
IdRequisicao (PK) | idUsuario (FK) | IdProduto (FK) | idEstabelecimento (FK) | quantidadeRequisicao | dataRequisicao |
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 01/01/2023 |
2 | 2 | 2 | 2 | 1 | 01/01/2023 |
3 | 3 | 3 | 3 | 1 | 01/01/2023 |
4 | 4 | 2 | 4 | 1 | 01/01/2023 |
IdProduto PK FK | idEstabelecimento PK FK |
---|---|
1 | 1 |
2 | 1 |
4 | 1 |
2 | 2 |
4 | 2 |
1 | 3 |
3 | 3 |
1 | 4 |
2 | 4 |
3 | 4 |
A documentação do swagger mostra todos os CRUDs das entidades existentes neste projeto.
Nesta API Rest FULL foi utilizado os métodos HTTP para realizar as rotas da aplicação por meio do CRUD (Create, Read, Update, Delete).
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /usuarios/all |
Retorna todos os usuários |
GET | /usuarios/{ID} |
Retorna usuário por id |
PUT | /atualizar/{id} |
Atualiza usuário por id |
POST | /usuarios/cadastrar |
Cria um usuário |
POST | /usuarios/logar |
Logar usuário |
DELETE | /delete/{id} |
Deleta usuário por id |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /categoria |
Retorna todas as categorias |
GET | /categoria/{idCategoria} |
Retorna categorias por id |
GET | /categoria/tipoCategoria/{tipoCategoria} |
Retorna por tipo de categoria |
POST | /categoria |
Cria categoria |
PUT | /categoria/atualizar/{id} |
Atualiza categoria por id |
DELETE | /categoria/{id} . |
Deleta categoria por id |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /produto |
Retorna todos os produto |
GET | /produto/{id} |
Retorna produto por id |
GET | /produto/nome/{nome} |
Retorna por nome de produto |
POST | /produto |
Cria produto |
PUT | /produto/atualizar/{id} |
Atualiza produto por id |
DELETE | /produto/{id} |
Deleta produto por id |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /estabelecimentos/buscar/all |
Retorna todos os estabelecimentos |
GET | /estabelecimentos/buscar/{id} |
Retorna estabelecimento por id |
GET | /estabelecimento/buscar/produto/{idProduto} |
Retorna estabelecimentos por id do produto |
POST | /estabelecimentos/criar |
Cria estabelecimentos |
PUT | /estabelecimentos/atualizar/{id} |
Atualiza estabelecimento por id |
DELETE | /estabelecimentos/deletar/{id} |
Deleta estabelecimento por id |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /requisicao/requisicao |
Retorna todas as requisições |
GET | /requisicao/requisicao/{id} |
Retorna requisições por id |
POST | /requisicao/criarRequisicao |
Cria requisição |
POST | /requisicao/salvarRequisicao |
Atualiza requisição |
DELETE | /requisicao/{id} |
Deleta requisição por id |
https://github.com/rafaelq80/cookbook_spring_v3/blob/main/03_spring/README.md