Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cleilsonandrade/dscommerce-api
DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Utilizado o framework o Spring.
https://github.com/cleilsonandrade/dscommerce-api
api backend commerce e-commerce h2-database java model-domain mysql oauth2 rsa-algorithm spring sql
Last synced: 6 days ago
JSON representation
DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Utilizado o framework o Spring.
- Host: GitHub
- URL: https://github.com/cleilsonandrade/dscommerce-api
- Owner: CleilsonAndrade
- License: mit
- Created: 2023-12-22T19:48:40.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-08-19T15:37:39.000Z (3 months ago)
- Last Synced: 2024-08-20T18:41:46.933Z (3 months ago)
- Topics: api, backend, commerce, e-commerce, h2-database, java, model-domain, mysql, oauth2, rsa-algorithm, spring, sql
- Language: Java
- Homepage:
- Size: 206 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
DSCommerce API
DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Foi utilizado o framework do Java o Spring, Spring Web, para gerenciamento do web server, Spring Data JPA para manipulação de informações dos bancos de dados MySQL e H2 Database. Para segurança e autenticação foi utilizado tecnologias como OAuth2 Resource Server, JWT e BCrypt.
# 📒 Índice
* [Descrição](#descrição)
* [Requisitos Funcionais](#requisitos)
* [Features](#features)
* [Tecnologias](#tecnologias)
* [Endpoints](#endpoints)
* [Instalação](#instalação)
* [Licença](#licença)# 📃 Descrição
DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Foi utilizado o framework do [**Java**](https://www.java.com) o [**Spring**](https://spring.io), [**Spring Web**](https://spring.io/projects/spring-framework), para gerenciamento do web server, [**Spring Data JPA**](https://spring.io/projects/spring-data-jpa) para manipulação de informações dos bancos de dados [**MySQL**](https://www.mysql.com) e [**H2 Database**](https://www.h2database.com). Para segurança e autenticação foi utilizado tecnologias como [**OAuth2 Resource Server**](https://oauth.net/2/), [**JWT**](https://jwt.io) e [**BCrypt**](https://en.wikipedia.org/wiki/Bcrypt) com a utilização da criptografia do tipo RSA.# 📌 Requisitos Funcionais
- [x] Autenticação de usuário
- [x] Perfis de cliente e administrador associados ao usuário
- [x] Cadastramento de produtos e categoria pertencente, por usuário com perfil de administrador
- [x] Listagem de produtos
- [x] Consulta de um produto especifico
- [x] Atualização de informações de produtos, por usuário com perfil de administrador
- [x] Deleção de um produto especifico, por usuário com perfil de administrador
- [x] Listagem de todas as categorias
- [x] Gerar ordem de compra, por usuário com perfil de cliente
- [x] Consulta de ordem de compra especifica, por usuário com perfis cliente e administrador## Features
- [x] Autenticação de usuário utilizando OAuth2, chave RSA e JWT Token
- [x] Exibição de informações do próprio usuário em sessão ativa
- [x] Status para as ordens: AGUARDANDO PAGAMENTO, PAGO, ENVIADO, ENTREGUE, CANCELADO
- [x] Adicionando mapeamento de CORS
- [x] Modelo de domínio complexo
- [x] Projeção com SQL nativo
- [x] Ambientes diferentes de desenvolvimento: DEV, TEST, PROD# 💻 Tecnologias
- **Java**
- **Spring**
- **Spring Web**
- **Spring Boot DevTools**
- **Spring Data JPA**
- **OAuth2 Resource Server**
- **RSA**
- **JWT**
- **BCrypt**
- **MySQL**
- **H2 Database**# 📍 Endpoints
| Método | Endpoint | Resumo | Autenticação | Role
|--------|----------------------|-----------------------------------------------------|--------------------------|----------------------
POST | /oauth2/token | Responsável por autenticar usuário e gerar o Bearer Token JWT. Utiliza o *Basic Auth* e o corpo de requisição do tipo *x-www-form-urlencoded* com as chaves: *username*, *password* e *grant_type* | Sim | *
GET | /users/me | Responsável por listar as informações do usuário que esta na sessão | Sim | ROLE_ADMIN, ROLE_CLIENT
GET | /products | Responsável por listar todos os produtos | Não | *
GET | /products/:id | Responsável por exibir um produto especifico por seu ID | Não | *
POST | /products | Responsável por cadastrar um produto | Sim | ROLE_ADMIN
PUT | /products/:id | Responsável por atualizar um produto, informando o ID no Path e via corpo de requisição as informações | Sim | ROLE_ADMIN
PUT | PUT /products/:id | Responsável por deletar um produto, informando o ID no Path | Sim | ROLE_ADMIN
GET | /categories | Responsável por listar todos as categorias | Não | *
POST | /orders | Responsável por gerar uma ordem de uma compra | Sim | ROLE_CLIENT
GET | /orders/:id | Responsável por listar os produtos na ordem de uma compra especifica e seu status, informando o ID | Sim | ROLE_ADMIN, ROLE_CLIENT
GET | /h2-console | Responsável por acesso ao *H2 Database* | Sim | *# 🚀 Instalação
```bash
# Clone este repositório:
$ git clone https://github.com/CleilsonAndrade/dscommerce-api.git
$ cd ./dscommerce-api# Instalar as dependências:
$ mvn clean install# Executar:
$ mvn spring-boot:run
```# 📝 Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.---
Feito com 💜 by CleilsonAndrade