O objetivo deste projeto é criar um mini e-commerce que permita aos usuários navegar e realizar compras de produtos. Os principais recursos incluem a página de vendas acessível sem a necessidade de login, a funcionalidade de adicionar e remover itens do carrinho de compras após o login, a verificação de disponibilidade de produtos em estoque e a validação de pagamento por meio de integração com uma API de pagamentos. Além disso, apenas usuários com permissão de administrador terão autorização para gerenciar categorias e produtos.
- Navegar pelos produtos disponíveis sem de fazer login;
- Necessário fazer login para movimentar o carrinho de compras;
- O carrinho exibe uma lista de itens selecionados permitindo ajustar a sua quantidade;
- A compra só será finalizada caso haja itens suficiente em estoque;
- A validação de pagamento por meio de API de pagamentos;
- Apenas admin podem adicionar, editar e remover produtos e categorias;
Java | Spring | MySQL | IntelliJ |
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas em sua máquina:
Siga estas etapas para instalar e executar o projeto:
-
Clone o repositório:
git clone git@github.com:RennanMendes/unimarket-backend.git
-
Compile o projeto usando o Maven:
mvn clean install
-
Execute o projeto:
java -jar target/unimarket.jar
O aplicativo Spring será executado na porta padrão 8080. Você pode acessá-lo em http://localhost:8080.
A escolha da arquitetura limpa para a realização deste projeto se baseia em diversas considerações que visam garantir um desenvolvimento eficiente e de alta qualidade. Abaixo, está alguns dos motivos que fundamentam a escolha:
-
Separação Clara de Responsabilidades: A arquitetura limpa estabelece uma divisão nítida entre as diferentes camadas do sistema, incluindo apresentação, regra de negócio e acesso a dados. Essa separação clara facilita significativamente os processos de teste, pois cada camada tem suas responsabilidades bem definidas.
-
Escalabilidade: Uma das características distintivas da arquitetura limpa é sua capacidade de ser facilmente escalada. Isso significa que o sistema pode crescer e evoluir ao longo do tempo sem comprometer a integridade ou a performance.
-
Baixo Acoplamento: A arquitetura limpa promove um baixo acoplamento com frameworks e bibliotecas externas. Isso não apenas simplifica a manutenção do código, mas também facilita a substituição desses elementos quando necessário, sem causar impactos significativos no restante do sistema.
-
Flexibilidade: A arquitetura limpa permite uma grande flexibilidade na implementação de novas funcionalidades e na modificação de existentes. Isso é possível graças à separação clara de responsabilidades e ao baixo acoplamento mencionados anteriormente.
A escolha do banco de dados relacional para este projeto é devido a sua modelagem organizada, coesão, integridade e segurança dos dados.
S.O.L.I.D
K.I.S.S
DRY
Tell don’t ask
Fail fast