Giter Club home page Giter Club logo

spring-professional-dscommerce's Introduction

Projeto Final - Sistema de Comércio Eletrônico

Java Spring Postgres JWT

Este repositório contém o projeto final para conclusão do treinamento Java Spring Professional ministrado pelo professor Nelio Alves, oferecido pela plataforma DevSuperior.

Este projeto visa criar uma API RESTful de comércio eletrônico usando tecnologias Java, Spring Boot, Spring Data JPA, Bean Validation, PostgresSQL como banco de dados, Spring Security e JWT para controle de autenticação.

Testes realizados com JUnit, Mockito, REST Assured. JaCoCo utilizado para cobertura de testes.

Sistema em prod: DSCommerce

Visão Geral do Sistema

O sistema desenvolvido neste projeto é uma aplicação completa de comércio eletrônico, abrangendo cadastros de usuários, produtos e categorias. Cada usuário, seja cliente ou administrador, tem sua própria área de interação com o sistema. Os administradores têm acesso à área administrativa para gerenciar usuários, produtos e categorias.

Funcionalidades Principais

  • Cadastro e autenticação de usuários com diferentes papéis (cliente, administrador).
  • Catálogo de produtos com capacidade de filtragem por nome.
  • Adição, remoção e alteração de itens no carrinho de compras.
  • Registro de pedidos com status dinâmicos (aguardando pagamento, pago, enviado, entregue, cancelado).
  • Área administrativa para gerenciamento de usuários, produtos e categorias.

Como executar este projeto

Pré-requisitos:
Passos:
  1. Clone o repositório
    Abra o terminal e navegue até o diretório onde deseja armazenar o projeto. Execute o seguinte comando para clonar o repositório:
git clone https://github.com/guilchaves/spring-professional-dscommerce.git
  1. Abra o projeto no IntelliJ IDEA ou STS:
  • IntelliJ IDEA: Abra o IntelliJ IDEA e selecione "Open" no menu principal. Navegue até o diretório do projeto e selecione o arquivo pom.xml.
  • Spring Tools Suite: Abra o STS e selecione "Import...​" > "Existing Maven Projects". Navegue até o diretório do projeto e selecione o arquivo pom.xml.
  1. Baixe as dependências do Maven:
    Aguarde até que o IntelliJ ou STS baixe automaticamente as dependências do Maven. Isso pode levar algum tempo, dependendo da conexão com a internet.

  2. Execute o projeto:
    No projeto, navegue até o arquivo src/main/java/br/com/guilchaves/dscommerce/DscommerceApplication.java. Este arquivo contém a classe principal da aplicação Spring Boot.
  • IntelliJ IDEA: Clique com o botão direito do mouse no arquivo DscommerceApplication.java e escolha "Run DscommerceApplication".
  • Spring Tools Suite: Clique com o botão direito do mouse no projeto no navegador de projetos e escolha "Run As" > "Spring Boot App".
  1. Verifique a Execução:
    Após a execução bem-sucedida, abra um navegador da web e acesse http://localhost:8080 (ou a porta configurada, se diferente) para verificar se a aplicação está em execução.
    Acesse http://localhost:8080/h2-console para utilizar o console do H2 database.

Para testar a API no postman:

Para importar e exportar dados no postman, consulte a documentação oficial aqui.
Download da coleção e variáveis de ambiente:

Endpoints da API:

POST /login - Autenticação na API.

GET /categories - Retorna lista de categorias dos produtos.

GET /orders/{id} - Retorna pedido do usuário por id - clientes não podem acessar pedidos de outros clientes (requer privilégio ADMIN ou OPERATOR).

POST /orders - Adiciona novo pedido para cliente logado.

GET /products - Retorna lista de produtos.

GET /products/{id} - Retorna produto por id.

POST /products - Adiciona novo produto (requer privilégio ADMIN).

PUT /products/{id} - Atualiza dados de produto já existente (requer privilégio ADMIN).

DELETE /products/{id} - Remove produto da base de dados (requer privilégio ADMIN).

GET /users/me - Retorna dados do usuário logado (requer privilégio ADMIN ou OPERATOR).

Autenticação

A API utiliza o Spring Security para controle de autenticação. Os seguintes papéis estão disponíveis:

OPERATOR -> Papel padrão para usuários autenticados.
ADMIN -> Papel de administrador para gerenciar produtos (adicionar, atualiza, remove produtos). 

Para acessar os endpoints protegidos como um usuário ADMIN, forneça as credenciais de autenticação adequadas no cabeçalho da requisição.

spring-professional-dscommerce's People

Contributors

guilchaves avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.