An open API service indexing awesome lists of open source software.

https://github.com/adolligit/trybesmith

Projeto idealizado pela escola @Tryber e desenvolvido por mim. É uma API REST que faz consultadas diretamente em um banco de dados relacional (MySQL). Utilizei Node.js + Express.js + TypeScript para desenvolver (e autenticação com JWT).
https://github.com/adolligit/trybesmith

api api-rest crud crud-api crud-application expressjs joi joi-validation json-web-token jsonwebtoken jwt jwt-auth jwt-authentication mysql mysql-database node-js-api node-js-express nodejs typescipt

Last synced: 6 months ago
JSON representation

Projeto idealizado pela escola @Tryber e desenvolvido por mim. É uma API REST que faz consultadas diretamente em um banco de dados relacional (MySQL). Utilizei Node.js + Express.js + TypeScript para desenvolver (e autenticação com JWT).

Awesome Lists containing this project

README

          

Trybesmith


Trybesmith é uma API Rest que foi criada com o intuito de entender o funcionamento da autenticação do usuário através do token com o JWT (JSON Web Token).



Foi construída com o JavaScript (Node.js) junto ao
Express.js e Typescript para validação de tipos estáticos.


Sua base de dados foi toda construída em MySQL com a comunicação feita diretamente por query's SQL no código (hard-coded).

## Como eu faço para executar este projeto?

Primeiro faça o clone e navegue até a pasta do projeto:

```bash
git clone git@github.com:Adolligit/trybesmith.git && cd trybesmith/
```

### Instalação


🚨 É crucial que você já tenha em sua máquina as ferramentas citadas em cada tipo de instalação, com a correta versão ou superior.

Escolha uma das instalações a seguir:

Instalar com Docker 🐳
Requisitos

Você deve possuir as seguintes ferramentas:


  • Docker: v20.1

  • Docker Compose: v1.29

1. Crie e inicie os contêiners:
```bash
docker compose up -d
```
2. Entre no contêiner da aplicação:
```bash
docker exec -it trybesmith bash
```
---

Instalar localmente 💻
Requisitos

Você deve possuir as seguintes ferramentas:


  • Node.js: v16

  • npm: v8.19

  • MySQL: v8

1. Renomeie o arquivo **.env.example**, que esta na pasta raiz, para **.env**.
2. No arquivo **.env**, informe seus dados de acesso ao banco de dados MySQL nas chaves: **MYSQL_USER** e **MYSQL_PASSWORD**.
3. Altere o valor da chave **JWT_SECRET** inserindo uma senha que será utilizada para criar o token de autenticação (lembre-se de salvar o arquivo **.env**).
---

### Execução
Instalar as dependências do projeto:
```bash
npm install
```
Criar as tabelas no banco de dados MySQL:
```bash
npm run migration
```
Popular o banco de dados:
```bash
npm run seed
```
Iniciar o projeto:
```bash
npm start
```
Inciar o projeto em modo de desenvolvimento (nodemon):
```bash
npm run dev
```
Executar o **ESLint** para verificar os erros do código estático:
```bash
npm run lint
```
Recriar o banco de dados já populado:
```bash
npm run reset
```
## Quais são as rotas desta API?
Deixei uma documentação feita com [Swagger UI](https://swagger.io/tools/swagger-ui/) para facilitar e lhe orientar no uso da API. Você pode acessa-la em [http://127.0.0.1:3000/v1/docs/](http://127.0.0.1:3000/v1/docs/).
gif de demonstração de uso

## Linguagens e ferramentas:


NodeJs
NodeJs
Express
TypeScript
NodeJs
NodeJs

## Agradecimento


Com este projeto, pude entender como funciona a autenticação de usuário através da utilização do JWT.


Agradeço muito a @tryber pela idealização deste projeto, pois para mim, toda teoria é mais fácil entender na prática.