Este repositório contém o código-fonte e a implementação de um sistema de backend em Java para um ecommerce voltado para livestreams.
Trello: https://trello.com/b/QvGBf6JC/desafio-locadora-solutis
O objetivo deste projeto é fornecer uma plataforma rápida e escalavel para gerenciar a compra e venda em uma plataforma de ecommerce.
-
Gestão de Pedidos: Cadastro, atualização e remoção de pedidos no sistema. Cada pedido possui uma lista de produtos.
-
Gestão de Produtos: Cadastro, atualização e remoção de produtos no sistema.
-
Gestão de Pagamentos: Registro e manutenção de dados dos pagamentos da plataforma.
-
Envio de Email: Os clientes são notificados ao realizar pagamentos na plataforma.
-
Java: v20.0 - Linguagem de programação principal para a lógica de negócios e manipulação de dados.
-
Spring Boot: v3.1.2 - Facilita a configuração e criação de aplicações Spring, reduzindo a necessidade de configurações manuais.
-
Maven v4.0.0 - Gerenciador de dependencias, facilitando a implementação e gerenciamento de bibliotecas.
-
Spring Data JPA: - Abstração para o acesso e manipulação de dados no banco de dados, facilitando a persistência dos objetos Java.
-
Banco de Dados MySql: - Utilizado para armazenar informações sobre veículos, clientes, reservas e aluguéis.
-
Lombok v1.18.28 - Ferramenta utilizada para amentar a produtividade.
-
IntelliJ IDEA - IDE utilizada pela equipe para densenvolvimento do projeto.
-
RabbitMQ - Mensageria assincrona utilizada no projeto
-
Arquitetura de Microsservices - Arquitetura do projeto escolhida
-
Junit5 - Testes unitarios
-
Locust - Testes de carga
-
Spring Cloud - Utilizado para configurar o gateway e rotas
-
Spring Security e JWT - Segurança feita com geração de tokens JWT
-
Swgager e Javadoc - Documentação feita com essas bibliotecas
- Arquitetura de microsservices - Arquitetura escolhida pela escalabilidade, resiliencia e facilidade de manutenção
- Spring Security - Foi utilizado o spring security juntamente com a geração de tokens JWT para gerar liberar o acesso, foi escolhido pela facilidade de integração, segurança e desempenho
- Comunicação assincrona com RabbiMQ - Para escalabilidade e desempenho as comunicações entre os microsserviços são assincronas
- Testes Unitarios e de Carga - Estratégia utilizada para testar o funcionamento esperado dos componentes e a resistencia do sistema
- Documentação - Utilizamos o swagger e javadoc para documentar a aplicação
-
Clone este repositório.
-
Configure as informações do banco de dados no arquivo
application.properties
. -
Execute a aplicação Server primeiro e depois os outros microsserviços.
-
Acesse a API REST em
http://localhost:8765
e utilize as rotas para interagir com o sistema. -
Verifique também a documentação swagger da aplicação
http://localhost:8080/swagger-ui/index.html#
para ter acesso às rotas.
- Repositório: https://github.com/JheniferMatos/LivePay