Este projeto consiste em uma aplicação backend para um e-commerce, desenvolvida como parte do Desafio 3 da trilha de estudos da bolsa oferecida pela UOL Compass com AWS. A aplicação permite a criação, gerenciamento de produtos, controle de estoque, gerenciamento de vendas e usuários, seguindo as melhores práticas de desenvolvimento de software.
- Linguagem: Java 22
- Framework: Spring Boot
- Banco de Dados: PostgreSQL
- Arquitetura de API: Clean Architecture
- Autenticação e Autorização: JWT (JSON Web Token)
-
Gestão de Produtos:
- CRUD (Create, Read, Update, Delete) completo para produtos.
- Validações como preço positivo e inativação de produtos que já foram incluídos em uma venda.
-
Controle de Estoque:
- Verificação do estoque antes da conclusão de uma venda, impedindo a venda de produtos com estoque insuficiente.
-
Gestão de Vendas:
- CRUD completo para vendas, garantindo que uma venda tenha pelo menos um produto para ser concluída.
-
Relatórios de Vendas:
- Relatórios de vendas por data, por mês e pela semana atual (considerando dias úteis).
-
Cache:
- Implementação de cache para as buscas de produtos e vendas, com gerenciamento eficiente para garantir dados sempre atualizados.
-
Tratamento de Exceções:
- Tratamento de todas as exceções seguindo um padrão de resposta unificado.
-
Padrão de Datas:
- Todas as datas seguem o padrão ISO 8601.
-
Autenticação e Autorização:
- Implementação de autenticação via JWT.
- Implementação de autorização, com permissões específicas para usuários ADMIN.
-
Reset de Senha:
- Método para permitir que os usuários possam resetar suas senhas.
-
Permissões de ADMIN:
- Somente usuários ADMIN podem deletar informações, cadastrar e atualizar produtos e outros usuários ADMIN.
Clique aqui para ser redirecionado para o diagrama ER/UML do projeto no Lucidchart.