Uma aplicação de catálogo de produtos (e-commerce) desenvolvida em Java com Spring Boot. Este projeto implementa boas práticas de arquitetura em camadas e disponibiliza uma API REST robusta para a gestão de produtos, categorias e usuários, protegida com autenticação baseada em tokens.
O projeto está organizado num formato de monorepo que inclui:
- 📁
backend/: A API REST principal desenvolvida em Java, com CRUD completo já implementado. - 📁
frontend/: Interface de usuário da aplicação (atualmente conta apenas com a tela de login).
- CRUD Completo: Gestão integral de Produtos, Categorias e Usuários via API.
- Autenticação e Autorização: Segurança implementada com Spring Security, OAuth2 e JWT (JSON Web Tokens).
- Paginação: Resultados de listagens paginados para otimização de desempenho e consumo de dados.
- Arquitetura Limpa: Estrutura organizada em camadas lógicas (
Controller→Service→Repository).
| Categoria | Tecnologia |
|---|---|
| Linguagem | Java 17+ e JavaScript/TypeScript |
| Framework Backend | Spring Boot |
| Segurança | Spring Security, OAuth2, JWT |
| Persistência de Dados | JPA / Hibernate |
| Banco de Dados | MySQL (Executado via Docker Compose) |
| Testes | JUnit, Mockito |
| Gerenciador de Dependências | Maven (Backend) e NPM/Yarn (Frontend) |
| Infraestrutura | Docker e Docker Compose |
Antes de executar o projeto localmente, certifique-se de ter instalado na sua máquina:
- Java 17 (ou versão superior)
- Node.js e npm (para rodar o frontend)
- Maven
- Docker e Docker Compose
- Uma IDE da sua preferência (IntelliJ IDEA, VS Code, Eclipse, etc.)
- Faça o clone deste repositório:
git clone [https://github.com/brunorsnts/ecommerce_api.git](https://github.com/brunorsnts/ecommerce_api.git)- Acesse a pasta do backend:
cd ecommerce_api/backend- Suba o container do MySQL utilizando o Docker Compose:
docker-compose up -d- Compile e inicie o servidor Spring Boot:
./mvnw spring-boot:run(Em alternativa, após subir o banco de dados com o Docker, você pode importar o projeto na sua IDE e executar a classe principal do Spring Boot).
- Abra um novo terminal e acesse a pasta do frontend:
cd ecommerce_api/frontend- Instale as dependências do projeto:
npm install- Inicie o servidor de desenvolvimento:
npm run dev(O frontend com a tela de login estará disponível no seu navegador, geralmente no endereço fornecido no terminal, como http://localhost:3000 ou http://localhost:5173).
A aplicação já sobe com um usuário administrador pré-configurado no banco de dados para facilitar os testes (tanto via API quanto na tela de login do front). Utilize as credenciais abaixo:
- Usuário (E-mail):
admin - Senha:
12345678
Para testar os demais endpoints da aplicação que ainda não possuem tela, recomenda-se a utilização de ferramentas como o Postman ou o Insomnia.
Exemplos de Endpoints:
GET /products→ Lista todos os produtos de forma paginada (rota pública).POST /categories→ Cria uma nova categoria (requer o token JWT do usuário admin).
- Desenvolver as demais telas do frontend (produtos, categorias, carrinho, etc.).
- Documentação interativa da API através do Swagger/OpenAPI.
- Deploy automatizado utilizando rotinas de CI/CD.
- Evoluir e distribuir o sistema em uma arquitetura de microsserviços.
As contribuições são muito bem-vindas! Se deseja melhorar este projeto, siga os passos abaixo:
- Faça um Fork do projeto.
- Crie uma branch com a sua nova funcionalidade (
git checkout -b feature/nova-funcionalidade). - Faça commits claros e descritivos das suas alterações (
git commit -m 'Adiciona a funcionalidade X'). - Envie as alterações para o seu fork (
git push origin feature/nova-funcionalidade). - Abra um Pull Request neste repositório.