Skip to content

Commit 737b843

Browse files
docs: Update README.md
1 parent 8d8076a commit 737b843

File tree

1 file changed

+168
-110
lines changed

1 file changed

+168
-110
lines changed

README.md

Lines changed: 168 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,174 @@
1-
<h1 align="center"> Spring Boot API </h1>
2-
3-
[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#table-of-contents)
4-
5-
## Descrição
6-
Este projeto é uma API de autenticação desenvolvida com **Spring Boot** e **Spring Security**, utilizando **MariaDB** como banco de dados. A API fornece funcionalidades de **registro** e **login** de usuários e será consumida por um frontend desenvolvido em outro framework.
7-
8-
## Tecnologias Utilizadas
9-
- **Java 17**
10-
- **Spring Boot 3**
11-
- **Spring Security**
12-
- **Spring Data JPA**
13-
- **MariaDB**
14-
- **JWT (JSON Web Token)**
15-
- **Maven**
16-
17-
## Requisitos
18-
Antes de rodar o projeto, certifique-se de ter instalado:
19-
- **Java 17** ou superior
20-
- **MariaDB** instalado e rodando
21-
- **Maven** configurado
22-
23-
## Configuração do Banco de Dados
24-
O projeto está configurado para utilizar **MariaDB**. Para configurá-lo, crie um banco de dados e edite o arquivo `application.properties`:
25-
26-
```properties
27-
spring.datasource.url=jdbc:mariadb://localhost:3306/seu_banco_de_dados
28-
spring.datasource.username=seu_usuario
29-
spring.datasource.password=sua_senha
30-
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
31-
spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect
32-
```
33-
34-
## Como Rodar o Projeto
35-
1. Clone o repositório:
36-
```sh
37-
git clone https://github.com/VavaHelper/Vava-API.git
38-
```
39-
2. Acesse o diretório do projeto:
40-
```sh
41-
cd Vava-API
42-
```
43-
3. Compile e execute o projeto:
44-
```sh
45-
mvn spring-boot:run
1+
<main align="center">
2+
<h1 align="center"> Spring Boot API </h1>
3+
</main>
4+
5+
[![────────────────────────────────────────](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#table-of-contents)
6+
7+
## 📑 Índice
8+
1. [Descrição](#descrição)
9+
2. [Tecnologias](#tecnologias)
10+
3. [Requisitos](#requisitos)
11+
4. [Configuração do Banco de Dados](#configuração-do-banco-de-dados)
12+
5. [Como Rodar](#como-rodar)
13+
- [Ambiente Padrão](#ambiente-padrão)
14+
- [Branch de Desenvolvimento](#branch-de-desenvolvimento)
15+
6. [Endpoints](#endpoints)
16+
7. [Fluxo de Autenticação](#fluxo-de-autenticação)
17+
8. [Futuras Implementações](#futuras-implementações)
18+
9. [Documentação Útil](#documentação-útil)
19+
10. [Licença](#licença)
20+
21+
---
22+
23+
## 📋 Descrição
24+
Esta API de **autenticação** foi desenvolvida com **Spring Boot** e **Spring Security**, utilizando **PostgreSQL** como banco de dados.
25+
Ela oferece endpoints para **registro** e **login** de usuários, retornando um JWT (JSON Web Token) para acesso seguro, consumível por um frontend separado.
26+
27+
---
28+
29+
## 🛠 Tecnologias
30+
31+
| Camada | Tecnologias |
32+
|-----------------|---------------------------------------------|
33+
| Linguagem | Java 17 |
34+
| Framework | Spring Boot 3, Spring Security, JPA |
35+
| Banco de Dados | PostgreSQL |
36+
| Autenticação | JWT (JSON Web Token) |
37+
| Build & Dep. | Maven |
38+
39+
---
40+
41+
## ✅ Requisitos
42+
- **Java 17** ou superior
43+
- **PostgreSQL** instalado e em execução
44+
- **Maven** (3.6+)
45+
46+
---
47+
48+
## 🗄️ Configuração do Banco de Dados
49+
1. Crie um banco no PostgreSQL:
50+
```sql
51+
CREATE DATABASE vava_api;
4652
```
4753

48-
## Como Rodar o Projeto (DSV)
49-
1. Clone o repositório:
50-
```sh
51-
git clone https://github.com/VavaHelper/Vava-API.git
52-
```
53-
2. Acesse o diretório do projeto:
54-
```sh
55-
cd Vava-API
56-
```
57-
3. Acesse a branch DSV:
58-
```sh
59-
git checkout development
60-
```
61-
4. Compile e execute o projeto:
62-
```sh
63-
mvn spring-boot:run
54+
2. Atualize `src/main/resources/application.properties`:
55+
56+
```properties
57+
spring.datasource.url=jdbc:postgresql://localhost:5432/vava_api
58+
spring.datasource.username=seu_usuario
59+
spring.datasource.password=sua_senha
60+
61+
spring.jpa.hibernate.ddl-auto=update
62+
spring.jpa.show-sql=true
63+
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
6464
```
6565

66-
## Endpoints Disponíveis
67-
A API oferece os seguintes endpoints:
68-
69-
### Registro de Usuário
70-
- **POST** `/api/auth/register`
71-
- **Request Body:**
72-
```json
73-
{
74-
"username": "exemplo",
75-
"email": "[email protected]",
76-
"password": "senha123"
77-
}
78-
```
79-
80-
### Login de Usuário
81-
- **POST** `/api/auth/login`
82-
- **Request Body:**
83-
```json
84-
{
85-
"email": "[email protected]",
86-
"password": "senha123"
87-
}
88-
```
89-
- **Resposta (sucesso):**
90-
```json
91-
{
92-
"token": "jwt_token_aqui"
93-
}
94-
```
95-
96-
## Futuras Implementações
97-
- Recuperação de senha
98-
- Perfis de usuários (Admin, Usuário Comum)
99-
- Integração com OAuth2
100-
- Atendimento/Suporte ao Usuário Cliente
101-
102-
103-
## 📚 Documentações importantes
104-
Caso esteja com dúvidas, verifique algumas das documentações abaixo, podem ser úteis:
105-
- [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/) - Saiba como padronizar seus commits do GitHub, isso será muito importante para a organização do projeto;
106-
- [Java Spring Boot](https://spring.io/projects/spring-boot) - Framework para criação de aplicações Java, facilitando a configuração e o desenvolvimento;
107-
- [Spring Security](https://spring.io/projects/spring-security) - Framework para autenticação e controle de acesso em aplicações Spring Boot;
108-
- [Java - Sintaxe](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html) - Guia oficial da Oracle sobre a sintaxe básica da linguagem Java;
109-
- [Design Patterns em Java](https://refactoring.guru/design-patterns/java) - Padrões de projeto explicados com exemplos práticos em Java.
110-
111-
Se tiver dúvidas sobre como iniciar ou progredir, converse com o resto da equipe!
112-
113-
## Licença
114-
Este projeto está sob a licença MIT. Sinta-se à vontade para utilizá-lo e modificá-lo.
66+
---
67+
68+
## ▶️ Como Rodar
69+
70+
### Ambiente Padrão (main)
71+
72+
```bash
73+
git clone https://github.com/VavaHelper/Vava-API.git
74+
cd Vava-API
75+
mvn clean install
76+
mvn spring-boot:run
77+
```
78+
79+
### Branch de Desenvolvimento (DSV)
80+
81+
```bash
82+
git clone https://github.com/VavaHelper/Vava-API.git
83+
cd Vava-API
84+
git checkout development
85+
mvn clean install
86+
mvn spring-boot:run
87+
```
88+
89+
---
90+
91+
## 🛣️ Endpoints Disponíveis
92+
93+
| Método | Rota | Descrição |
94+
| -----: | -------------------- | ------------------------------ |
95+
| POST | `/api/auth/register` | Registrar novo usuário |
96+
| POST | `/api/auth/login` | Autenticar usuário e gerar JWT |
97+
98+
<details>
99+
<summary>▶️ Exemplo de Payload de Registro</summary>
100+
101+
```json
102+
{
103+
"username": "exemplo",
104+
"email": "[email protected]",
105+
"password": "senha123"
106+
}
107+
```
108+
109+
</details>
110+
111+
<details>
112+
<summary>▶️ Exemplo de Payload de Login</summary>
113+
114+
```json
115+
{
116+
"email": "[email protected]",
117+
"password": "senha123"
118+
}
119+
```
120+
121+
**Resposta (sucesso):**
122+
123+
```json
124+
{
125+
"token": "eyJhbGciOiJIUzI1NiIsInR5..."
126+
}
127+
```
128+
129+
</details>
130+
131+
---
132+
133+
## 🔄 Fluxo de Autenticação
134+
135+
```mermaid
136+
flowchart LR
137+
A[Cliente envia credenciais] --> B{É novo usuário?}
138+
B -- Sim --> C[POST /api/auth/register]
139+
B -- Não --> D[POST /api/auth/login]
140+
D --> E{Credenciais válidas?}
141+
C --> F[Usuário criado no DB]
142+
F --> D
143+
E -- Sim --> G[Gerar JWT e retornar 200 OK]
144+
E -- Não --> H[Retornar 401 Unauthorized]
145+
G --> I[Cliente armazena token]
146+
I --> J[Requisições subsequentes com Authorization: Bearer <token>]
147+
```
148+
149+
---
150+
151+
## 🚀 Futuras Implementações
152+
153+
* 🔄 Recuperação de senha
154+
* 👥 Perfis de usuário (Admin, Comum)
155+
* 🔐 OAuth2 (Google, Facebook)
156+
* 💬 Sistema de suporte ao cliente
157+
158+
---
159+
160+
## 📚 Documentação Útil
161+
162+
| Tópico | Link |
163+
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
164+
| Conventional Commits | [https://www.conventionalcommits.org/pt-br/v1.0.0/](https://www.conventionalcommits.org/pt-br/v1.0.0/) |
165+
| Spring Boot | [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) |
166+
| Spring Security | [https://spring.io/projects/spring-security](https://spring.io/projects/spring-security) |
167+
| Hibernate & JPA | [https://docs.spring.io/spring-data/jpa/docs/current/reference/html/](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/) |
168+
| Design Patterns em Java | [https://refactoring.guru/design-patterns/java](https://refactoring.guru/design-patterns/java) |
169+
170+
---
115171

172+
## 📝 Licença
116173

174+
Este projeto está licenciado sob a **MIT License**. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

0 commit comments

Comments
 (0)