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).
- Host: GitHub
- URL: https://github.com/adolligit/trybesmith
- Owner: Adolligit
- Created: 2022-11-19T03:33:44.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-20T04:44:57.000Z (over 2 years ago)
- Last Synced: 2025-08-08T01:29:17.821Z (6 months ago)
- Topics: 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
- Language: TypeScript
- Homepage: https://www.linkedin.com/in/adelson-lima
- Size: 4.76 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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/).

## Linguagens e ferramentas:
## 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.