Skip to content

Commit 725a0e0

Browse files
committed
docs: update readme.md
1 parent 3f00d32 commit 725a0e0

File tree

1 file changed

+107
-68
lines changed

1 file changed

+107
-68
lines changed

README.md

Lines changed: 107 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,124 @@
1-
<p align="center">
2-
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3-
</p>
4-
5-
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6-
[circleci-url]: https://circleci.com/gh/nestjs/nest
7-
8-
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9-
<p align="center">
10-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13-
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14-
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15-
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16-
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18-
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
19-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20-
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
21-
</p>
22-
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23-
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24-
25-
## Description
26-
27-
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28-
29-
## Project setup
30-
31-
```bash
32-
$ npm install
33-
```
341

35-
## Compile and run the project
2+
# Corpora - Backend
363

37-
```bash
38-
# development
39-
$ npm run start
4+
Este é o backend da aplicação **Corpora**, desenvolvido com **NestJS** utilizando **TypeScript**. Ele fornece serviços para autenticação, autorização, integração com OAuth (Google) e gerenciamento de empresas associadas a usuários.
405

41-
# watch mode
42-
$ npm run start:dev
6+
---
437

44-
# production mode
45-
$ npm run start:prod
46-
```
8+
## 🚀 Funcionalidades
479

48-
## Run tests
10+
- Autenticação e autorização com **JWT** e **OAuth Google**.
11+
- Suporte a guardas para controle de acesso: **Local**, **JWT** e **Google**.
12+
- Operações CRUD para empresas (Create, Read, Update, Delete).
13+
- Estrutura modular seguindo princípios **SOLID** e organização limpa.
14+
- Conexão com **MySQL** usando **TypeORM**.
4915

50-
```bash
51-
# unit tests
52-
$ npm run test
16+
---
5317

54-
# e2e tests
55-
$ npm run test:e2e
18+
## 🛠️ Tecnologias
5619

57-
# test coverage
58-
$ npm run test:cov
59-
```
20+
- **NestJS** (Framework para Node.js)
21+
- **TypeScript**
22+
- **JWT** para autenticação
23+
- **OAuth2** para login com Google
24+
- **MySQL** como banco de dados
25+
- **TypeORM** para modelagem e gerenciamento do banco de dados
26+
27+
---
28+
29+
## ⚙️ Configuração do Ambiente
30+
31+
1. **Instale as dependências:**
32+
```bash
33+
npm install
34+
```
35+
36+
2. **Configure o arquivo `.env`:**
37+
Crie um arquivo `.env` na raiz do projeto e adicione os seguintes valores que existem no arquivo `.env.example`:
38+
39+
```plaintext
40+
DB_HOST=localhost
41+
DB_PORT=3306
42+
DB_USER=root
43+
DB_PASSWORD=sua_senha_do_banco
44+
DB_NAME=corpora
45+
JWT_SECRET=12345
46+
JWT_EXPIRES_IN=1d
47+
REFRESH_JWT_SECRET=12345
48+
REFRESH_JWT_EXPIRES_IN=7d
49+
GOOGLE_CLIENT_ID=seu_google_client_id
50+
GOOGLE_SECRET=seu_google_secret
51+
GOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/callback
52+
```
53+
54+
3. **Tenha um servidor MySQL configurado:**
55+
56+
```
6057
61-
## Resources
58+
---
6259
63-
Check out a few resources that may come in handy when working with NestJS:
60+
## 🏃 Executando o Backend
6461
65-
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
66-
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
67-
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
68-
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
69-
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
70-
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
71-
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
62+
1. **Modo de Desenvolvimento:**
63+
```bash
64+
npm run start:dev
65+
```
7266

73-
## Support
67+
---
7468

75-
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
69+
## 📖 Decisões Técnicas
7670

77-
## Stay in touch
71+
- **Modularidade e SOLID:**
72+
A arquitetura do backend foi projetada com módulos independentes e bem definidos, como `AuthModule`, `UserModule`, e `CompanyModule`, seguindo o princípio da **separação de responsabilidades**. Isso permite que novas funcionalidades sejam adicionadas ou alteradas com impacto mínimo em outras partes do sistema.
7873

79-
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
80-
- Website - [https://nestjs.com](https://nestjs.com/)
81-
- Twitter - [@nestframework](https://twitter.com/nestframework)
74+
- **NestJS Framework:**
75+
O NestJS foi escolhido por sua abordagem opinativa e sua aderência aos princípios da engenharia de software, como o SOLID. Ele oferece uma estrutura robusta e escalável, permitindo a criação de APIs RESTful com práticas modernas.
8276

83-
## License
77+
- **TypeORM:**
78+
Utilizado para simplificar a interação com o banco de dados MySQL. Com ele, foi possível:
79+
- Gerenciar entidades com facilidade.
80+
- Sincronizar o esquema do banco de dados.
81+
- Garantir a consistência e integridade dos dados por meio de validações a nível de entidade.
82+
83+
- **Guards para Controle de Acesso:**
84+
Os **Guards** do NestJS foram essenciais para proteger as rotas e garantir que somente usuários autorizados pudessem realizar determinadas ações. As implementações incluem:
85+
- **LocalGuard:** Realiza a autenticação inicial do usuário com credenciais tradicionais.
86+
- **JwtGuard:** Verifica e valida tokens JWT para proteger rotas de acesso restrito.
87+
- **GoogleGuard:** Facilita o login com OAuth 2.0 do Google, integrando a autenticação social de forma segura.
88+
89+
- **Injeção de Dependência:**
90+
O uso nativo do NestJS para gerenciar dependências tornou o código mais limpo e fácil de testar, promovendo a reutilização de serviços e a manutenção do projeto.
91+
92+
---
93+
94+
## 🔑 Configuração do OAuth Google
95+
96+
1. Acesse o [Console de API do Google](https://console.developers.google.com/).
97+
2. Crie um projeto e habilite o **OAuth 2.0**.
98+
3. Adicione as seguintes URLs de redirecionamento:
99+
- **`http://localhost:3000/auth/google/callback`**
100+
4. Copie o **Client ID** e **Secret** e configure no `.env`, substituindo os valores das variáveis existentes.
101+
102+
---
103+
104+
## 📂 Estrutura do Projeto
105+
106+
```plaintext
107+
src/
108+
├── auth/ # Módulo de autenticação
109+
├── auth/decorators # Decorator para role de usuario
110+
├── auth/enums # Enum de role de usuario
111+
├── auth/guard # Validação de rota com tipo de autenticação
112+
├── auth/jwt # Configuração do token e refresh token do jwt
113+
├── company/ # Módulo de empresas
114+
├── config/ # Configuração do google
115+
├── dto/ # Dto de paginação
116+
├── strategies/ # Estratégias de autenticação
117+
├── typeOrm/ # Configuração das entidades do banco de dados
118+
├── user/ # Modulo de usuario
119+
├── utils/ # Tamanho padrão do retorno de uma requisicao
120+
├── main.ts # Arquivo principal
121+
├── database-init.ts # Arquivo de configuração do banco de dados
122+
```
84123

85-
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
124+
---

0 commit comments

Comments
 (0)