Git Product home page Git Product logo

springexpertdscatalog's Introduction

Projeto Final - Sistema DS Catalog

Projeto JAVA Springboot JPA

image image

Java Spring Postgres JWT

Esse repositório contém o projeto final desenvolvido para conclusão do treinamento Java Spring Expert, da plataforma Dev Superior.

Este projeto visa criar uma API RESTful de um sistema de catágolo de produtos usando tecnologias como ● Java

● Spring Boot Framework

● Spring Security

● Bean Validation

● PostgresSQL como banco de dados

● JWT para controle de autenticação

● JUnit e Mockito para testes unitários e integrados

● JaCoCo para cobertura de testes.

Visão geral do sistema

O sistema desenvolvido é uma aplicaćão completa de sistema de catálogo de produtos, abrangendo cadastro de usuários, produtos e categorias. Cada usuário, seja cliente ou administrador, tem sua própria área de interação com o sistema. O sistema permite a consulta de produtos, categorias, usuários e alteração de senha a partir de envio de email.

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 ou categoria.
  • Área administrativa para gerenciamento de usuários, produtos e categorias.
  • Recuperação de senha através de requisição e envio de email do sistema para o usuário.

Collections Postman

Pode ser encontrado dentro de pasta específica aqui no repo.

Github dos recursos para o DSCatalog

https://github.com/devsuperior/dscatalog-resources

Figma do DSCatalog

https://www.figma.com/file/cNa2l3TqZXxbU6NBDPruNw/BDS-DSCatalog

Modelo conceitual do DSCatalog

image

POST /oauth2/token - Autenticação na API.

POST /auth/recover-token - Retorna token para recuperação de senha; envio de email com endereço de recuperação de senha.

PUT /auth/new-password - Atualiza senha de usuário (requer Token válido).

GET /users - Retorna lista de usuários (requer privilégio ADMIN).

GET /users/{id} - Retorna usuário por id (requer privilégio ADMIN).

POST /users - Cadastra usuário com privilégio OPERATOR.

PUT /users - Atualiza dados do usuário (requer privilégio ADMIN).

DELETE /users/{id} - Deleta usuário por id (requer privilégio ADMIN).

GET /me - Retorna dados do usuário logado (requer login).

GET /categories - Retorna lista de categorias.

GET /categories/{id} - Retorna categoria por id.

POST /categories - Insere nova categoria (requer privilégio admin)

PUT /categories/{id} - Atualiza categoria por id (requer privilégio ADMIN).

DELETE /categories/{id} - Deleta categoria por id (requer privilégio ADMIN).

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 produto por id (requer privilégio ADMIN).

DELETE /products/{id} - Deleta produto por id (requer privilégio ADMIN).

Competências

● Criar projeto Spring Boot

● Criar monorepo Git

● Organizar o projeto em camadas

○ Controlador REST

○ Serviço

○ Acesso a dados (Repository)

● Criar entidades

● Configurar perfil de teste do projeto

● Seeding da base de dados

● Criar web services REST

○ Parâmetros de rota @PathVariable

○ Parâmetros de requisição @RequestParam

○ Corpo de requisição @RequestBody

○ Resposta da requisição ResponseEntity

● Padrão DTO

● CRUD completo

● Tratamento de exceções

● Postman (coleções, ambientes)

● Dados de auditoria

● Paginação de dados

● Associações entre entidades (N-N)

springexpertdscatalog's People

Contributors

sammy192 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.