Skip to content

Commit 3afb264

Browse files
authored
Revise README for clarity and organization
Updated README with improved project description and structure.
1 parent 4330e40 commit 3afb264

File tree

1 file changed

+80
-71
lines changed

1 file changed

+80
-71
lines changed

readme.md

Lines changed: 80 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,112 @@
11

22
# Bullet Cloud API: E-commerce Backend
33
[![CodeQL Advanced](https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/codeql.yml/badge.svg)](https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/codeql.yml)
4+
[![Go](https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/go.yml/badge.svg)](https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/go.yml)
45
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Bulletdev_Arremate-certo&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Bulletdev_Arremate-certo)
56
![Go Version](https://img.shields.io/github/go-mod/go-version/Bulletdev/go-cart-api?color=00ADD8&labelColor=000000)
67
![License](https://img.shields.io/badge/license-GPL--3.0-blue)
78

8-
Uma API RESTful de alta performance desenvolvida em Go, projetada sob princípios de Clean Architecture. Focada em segurança (IAM), escalabilidade e gestão de ecossistemas de e-commerce modernos.
9+
API RESTful de alta performance desenvolvida em Go, focada em segurança (IAM), escalabilidade e padrões de Clean Architecture. Ideal para ecossistemas de e-commerce que exigem auditoria e integridade de dados.
910

1011
---
1112

12-
## Stack
13+
## Arquitetura e Design System
14+
O projeto implementa o padrão **Hexagonal / Clean Architecture**, garantindo total desacoplamento entre a lógica de negócio e os provedores de infraestrutura.
1315

14-
| Camada | Tecnologia |
15-
| :--- | :--- |
16-
| **Linguagem** | Go (1.22+) |
17-
| **Roteamento** | Gorilla Mux |
18-
| **Persistência** | PostgreSQL (via pgx/v5) |
19-
| **Segurança** | JWT (v5) & Bcrypt |
20-
| **Migrações** | Golang-migrate |
21-
| **Observabilidade** | Prometheus & Grafana (Planned) |
16+
17+
18+
### Core Principles
19+
- **DevSecOps Integrado:** CodeQL e análise estática SonarCloud no pipeline de CI.
20+
- **Data Integrity:** Controle de transações ACID no PostgreSQL e migrações versionadas.
21+
- **IAM:** Autenticação via JWT (v5) e hashing robusto com Bcrypt.
22+
- **Scalability:** Design stateless e interfaces para repositórios facilitando substituição de DB ou Mocking em testes.
2223

2324
---
2425

25-
## Arquitetura e Design
26-
A aplicação implementa o padrão **Hexagonal / Clean Architecture**, isolando a lógica de negócio (Domain/Repositories) da infraestrutura e dos transportes (Handlers/Middlewares).
26+
## Guia de Uso (Exemplos Rápidos)
2727

28+
<details>
29+
<summary><b>Autenticação e Registro</b></summary>
2830

31+
**Registrar novo usuário:**
32+
```bash
33+
curl -X POST http://localhost:4444/api/auth/register \
34+
-H "Content-Type: application/json" \
35+
-d '{"name":"Michael Bullet","email":"[email protected]","password":"senha_segura"}'
2936

30-
### Destaques do Projeto
31-
- **DevSecOps Ready:** CodeQL e análise estática via SonarCloud integrados ao CI/CD.
32-
- **Data Integrity:** Controle rigoroso de transações e migrações versionadas.
33-
- **RESTful Design:** Endpoints padronizados com prefixo `/api` e status codes semânticos.
34-
- **High Testability:** Handlers desacoplados via interfaces para facilitação de mocks e testes unitários.
37+
```
3538

36-
---
39+
**Login e Obtenção de Token:**
3740

38-
## Visão Geral da API
41+
```bash
42+
TOKEN=$(curl -s -X POST http://localhost:4444/api/auth/login \
43+
-H "Content-Type: application/json" \
44+
-d '{"email":"[email protected]","password":"senha_segura"}' | jq -r .token)
3945

40-
<details>
41-
<summary><b> Autenticação e Gestão de Identidade (IAM)</b></summary>
46+
```
4247

43-
| Método | Endpoint | Descrição |
44-
| :--- | :--- | :--- |
45-
| POST | `/api/auth/register` | Registro de novo usuário |
46-
| POST | `/api/auth/login` | Autenticação e emissão de JWT |
47-
| GET | `/api/users/me` | Recupera perfil do portador do token |
4848
</details>
4949

5050
<details>
51-
<summary><b> Carrinho de Compras e Pedidos</b></summary>
52-
53-
| Método | Endpoint | Descrição |
54-
| :--- | :--- | :--- |
55-
| GET | `/api/cart` | Visualiza o estado atual do carrinho |
56-
| POST | `/api/cart/items` | Adiciona ou incrementa itens |
57-
| DELETE | `/api/cart/items/{id}` | Remove item específico |
58-
| POST | `/api/orders` | Checkout e conversão de carrinho em pedido |
59-
| GET | `/api/orders` | Lista histórico de pedidos |
60-
</details>
51+
<summary><b>Gerenciamento de Carrinho</b></summary>
52+
53+
**Adicionar Item:**
54+
55+
```bash
56+
curl -X POST http://localhost:4444/api/cart/items \
57+
-H "Authorization: Bearer $TOKEN" \
58+
-H "Content-Type: application/json" \
59+
-d '{"product_id":"UUID_DO_PRODUTO","quantity":2}'
60+
61+
```
62+
63+
**Checkout (Gerar Pedido):**
64+
65+
```bash
66+
curl -X POST http://localhost:4444/api/orders -H "Authorization: Bearer $TOKEN"
67+
68+
```
6169

62-
<details>
63-
<summary><b> Catálogo de Produtos</b></summary>
64-
65-
| Método | Endpoint | Descrição |
66-
| :--- | :--- | :--- |
67-
| GET | `/api/products` | Listagem geral com filtros (Planned) |
68-
| GET | `/api/products/{id}` | Detalhes técnicos do produto |
69-
| POST | `/api/products` | Criação de novos SKUs (Admin Only) |
70-
| GET | `/api/categories` | Listagem de categorias ativas |
7170
</details>
7271

7372
---
7473

75-
## Configuração e Execução
74+
## Documentação da API
75+
76+
| Módulo | Método | Endpoint | Protegido |
77+
| --- | --- | --- | --- |
78+
| **Auth** | POST | `/api/auth/login` | No |
79+
| **Users** | GET | `/api/users/me` | Yes |
80+
| **Products** | GET | `/api/products` | No |
81+
| **Cart** | POST | `/api/cart/items` | Yes |
82+
| **Orders** | GET | `/api/orders` | Yes |
83+
84+
> [Consulte a Documentação Arquitetural Detalhada](https://www.google.com/search?q=./docs/README.md) para diagramas de ERD e fluxos de autenticação.
85+
86+
---
87+
88+
## Configuração do Ambiente
7689

7790
### Pré-requisitos
78-
- Go 1.22+
79-
- PostgreSQL
80-
- [Golang-migrate CLI](https://github.com/golang-migrate/migrate)
8191

82-
### Setup Rápido
83-
1. **Clone & Install:**
84-
```bash
85-
git clone [https://github.com/bulletdev/go-cart-api.git](https://github.com/bulletdev/go-cart-api.git)
86-
cd go-cart-api && go mod tidy
92+
* Go 1.22+
93+
* PostgreSQL (ou Supabase)
94+
* [Golang-migrate CLI](https://github.com/golang-migrate/migrate)
95+
96+
### Setup
97+
98+
1. **Instalação:**
99+
```bash
100+
git clone [https://github.com/bulletdev/go-cart-api.git](https://github.com/bulletdev/go-cart-api.git)
101+
cd go-cart-api && go mod tidy
87102

88103
```
89104

90-
2. **Environment:**
91-
Crie um arquivo `.env` baseado nas variáveis abaixo:
105+
106+
2. **Ambiente (.env):**
92107
```env
93-
DATABASE_URL="postgres://user:pass@host:5432/db?sslmode=require"
94-
JWT_SECRET="sua_chave_secreta_aqui"
95-
API_PORT=4444
108+
DATABASE_URL="postgres://usuario:senha@host:5432/database"
109+
JWT_SECRET="seu_segredo_jwt"
96110
97111
```
98112

@@ -104,7 +118,7 @@ migrate -database ${DATABASE_URL} -path internal/database/migrations up
104118
```
105119

106120

107-
4. **Run:**
121+
4. **Execução:**
108122
```bash
109123
go run cmd/main.go
110124

@@ -114,9 +128,9 @@ go run cmd/main.go
114128

115129
---
116130

117-
## Qualidade de Código
131+
## Qualidade e Testes
118132

119-
Execução de suíte de testes unitários:
133+
Suíte de testes unitários focada em Handlers e Lógica de Negócio:
120134

121135
```bash
122136
go test -v ./internal/handlers/...
@@ -125,15 +139,10 @@ go test -v ./internal/handlers/...
125139

126140
---
127141

128-
## 📄 Licença
129-
130-
Distribuído sob a licença **GNU General Public License v3.0**. Veja `LICENSE` para mais informações.
131-
132-
## Contato
133-
134-
Michael Bullet
142+
## 📄 Licença e Contato
135143

136-
137-
[michaelbullet.com](https://www.michaelbullet.com)
144+
* **Licença:** GNU General Public License v3.0
145+
* **Autor:** Michael Bullet - [[email protected]](mailto:[email protected])
146+
* **Web:** [michaelbullet.com](https://www.michaelbullet.com)
138147

139148
```

0 commit comments

Comments
 (0)