Um serviço simples e eficiente de gerenciamento de carrinho de compras, utilizando tecnologias modernas para oferecer performance e escalabilidade.
- Sobre o Projeto
- Tecnologias Utilizadas
- Funcionalidades
- Screenshots
- Como Rodar o Projeto
- Contribuições
- License
O projeto faz parte do modulo de Springboot do java10x java10x é um serviço que gerencia um carrinho de compras simples, integrando dados de uma API externa para fornecer produtos disponíveis. Ele utiliza uma arquitetura eficiente que combina cache (Redis), banco de dados NoSQL (MongoDB), e contêineres (Docker), garantindo alta performance e escalabilidade.
- Oferecer uma experiência fluida ao usuário.
- Minimizar chamadas desnecessárias à API externa através do cache.
- Facilitar o deploy em ambientes containerizados.
O projeto foi desenvolvido com as seguintes tecnologias:
- A versão mais moderna da linguagem Java, focada em desempenho e funcionalidades aprimoradas.
- Saiba mais: Documentação oficial do Java
- Material de aula: https://aluno.java10x.dev/187812-batismo-de-java
- Reduz a verbosidade do código, automatizando a criação de getters, setters e construtores.
- Saiba mais: Documentação oficial do Lombok
- Material de aula - https://aluno.java10x.dev/187814-spring10x [Aula 9]
- Um banco de dados em memória, utilizado como cache para melhorar a performance nas interações com a API externa.
- Saiba mais: Introdução ao Redis
- Banco de dados NoSQL, utilizado para armazenar as informações do carrinho de compras de maneira flexível.
- Saiba mais: Documentação oficial do MongoDB### MongoDB
- Material de aula - https://aluno.java10x.dev/187814-spring10x [Aula 14]
- Uma biblioteca que simplifica a integração com APIs externas, tornando a comunicação mais intuitiva e reduzindo a verbosidade do código.
- Saiba mais: Documentação oficial do OpenFeign
- Ferramenta de containerização para criar ambientes consistentes e simplificados para deploy.
- Saiba mais: Documentação oficial do Docker
- Material de aula - https://aluno.java10x.dev/209723-docker
- Integração com uma API que fornece a lista de produtos disponíveis para o carrinho.
- Saiba mais sobre integração com APIs: Guia para trabalhar com APIs
- Listar Produtos: Gerencie os produtos do carrinho de forma simples.
- Criar, Alterar, Pagar e Deletar: Gerencie o carrinho de compras.
- Cache Inteligente: Reduz o tempo de resposta com dados armazenados no Redis.
- Persistência com MongoDB: Armazene os dados do carrinho com segurança e flexibilidade.
- Integração com API Externa: Produtos são carregados diretamente de uma API confiável.
- Suporte Docker: Implante o projeto rapidamente em qualquer ambiente.
- Docker (ou instâncias de Redis e MongoDB configuradas localmente)
- Java 17
- Maven (ou use o wrapper mvnw)
MIT License
Copyright (c) 2025 Renan Lessa
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.