Skip to content

O FlowStore é um projeto completo de E-commerce, desenvolvido com arquitetura de microserviços desacoplados, comunicação orientada a eventos e boas práticas de engenharia de software moderna.

License

Notifications You must be signed in to change notification settings

JhonSantt4na/FlowStore

Repository files navigation

🛒 FlowStore Microservices - Sistema de E-commerce

Java Spring Boot License Progress

FlowStore é um sistema de e-commerce desenvolvido com uma arquitetura de microserviços utilizando Java 21 e Spring Boot. O projeto demonstra boas práticas de desenvolvimento backend, como comunicação assíncrona via Apache Kafka, segurança com JWT, persistência em bancos PostgreSQL isolados, e orquestração com Docker. Organizado como um projeto Maven multi-módulo, o FlowStore é modular, escalável e segue princípios de DevOps e metodologias ágeis. O objetivo é simular um ambiente de e-commerce real, com serviços independentes para autenticação, gerenciamento de produtos, pedidos, pagamentos, estoque e notificações, proporcionando uma base robusta para aprendizado e demonstração de habilidades técnicas.


🚀 Funcionalidades

Autenticação e Autorização: Cadastro e login de usuários com JWT e controle de acesso baseado em papéis (RBAC). Gerenciamento de Produtos: Cadastro, atualização e consulta de produtos no catálogo. Processamento de Pedidos: Criação e acompanhamento de pedidos com integração assíncrona. Gestão de Estoque: Atualização de estoque em tempo real via eventos Kafka. Notificações: Envio de alertas por e-mail ou SMS sobre status de pedidos. Documentação: APIs documentadas com Swagger/OpenAPI para facilitar integração.

🛠️ Tecnologias Utilizadas

🚀 Tecnologias 🚀 + Padrões Utilizados
Linguagem: Java 21+ Lombok
Framework: Spring Boot 3.5.x Bean Validation
Camadas: Controller → Service → Repository Actuador
Spring Security (JWT) Cors Configuration
Spring Data JPA Postman para testes
PostgreSQL (com Docker) Padronização de logs com SLF4J
Docker + Docker Compose Maven (multi-módulo)
DTO com record Apache Kafka
MapStruct para conversões Swagger SpringDoc OpenAPI + Swagger UI

🔐 Autenticação e Autorização

A autenticação é centralizada no serviço primestore-auth, utilizando Spring Security com JWT e RBAC. As roles disponíveis são:

ROLE_USER: Clientes do e-commerce. ROLE_ADMIN: Administradores do sistema. ROLE_SELLER: Vendedores ou gerentes de estoque.

Fluxo de autenticação:

sequenceDiagram participant Usuário participant AuthService participant OtherService Usuário->>AuthService: POST /auth/signin (credenciais: username, password) AuthService-->>Usuário: Retorna JWT (access_token) Usuário->>OtherService: Requisição autenticada (Authorization: Bearer ) OtherService-->>Usuário: Resposta com dados protegidos


📂 Estrutura do Projeto O projeto é organizado em módulos Maven para maior modularidade e manutenção:

    primestore/
        ├── primestore-auth/                    # Serviço de autenticação e autorização (JWT)
        ├── primestore-catalog/                 # Vitrine (produtos, categorias)
        ├── primestore-order/                   # Núcleo da venda (Order, OrderPedido)
        ├── primestore-pay/                     # Processamento de pagamentos
        ├── primestore-stock/                   # Gerenciamento de estoque
        ├── primestore-notifier/                # Notificações (e-mail, SMS)
        ├── common-events/                      # Biblioteca compartilhada (DTOs, eventos Kafka)
        ├── docker-compose.yml                  # Configuração de Docker para PostgreSQL e Kafka
        └── pom.xml                             # Configuração Maven multi-módulo

📚 Documentação da API

Acesse a documentação de cada microserviço via Swagger UI:

Auth Service: http://localhost:8080/swagger-ui/index.html

Core Service: http://localhost:8081/swagger-ui/index.html

Versão da API: v1.0.0

Ferramenta: SpringDoc OpenAPI


🏗️ Melhorias Futuras

About

O FlowStore é um projeto completo de E-commerce, desenvolvido com arquitetura de microserviços desacoplados, comunicação orientada a eventos e boas práticas de engenharia de software moderna.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •