wits-site-api

Back-end stack for the sixth Hackathon of OneBitCode.

Stars
0

🧠 Wits - API

Bem-vindo ao projeto back-end do Wits, seu e-learning gamificado de aprendizado de raciocínio e lógica. Aqui, iremos lhe instruir em como lançar a aplicação localmente e utilizá-la.

📖 Índice

Instalação

Para instalar o projeto, será necessário algum gerenciador de pacotes JavaScript (NPM, Yarn, PNPM, Bun...).

Primeiro, abra sua linhade comando e digite a seguinte linha:

git clone https://github.com/odavibatista/wits-site-api.git

E em seguida:

cd wits-site-api

Já na root do projeto, baixe as dependências com o seu comando de instalação (com base noseu gerenciador de pacotes):

npm install

yarn install

bun install

Configuração

Após instalar as dependências, é preciso configurar as variáveis de ambiente do mesmo. Para isso, faça uma cópia do arquivo .env.example presente na root do projeto e nomeie-o para .env.

Dentro dele, você encontrará o seguinte esqueleto de variáveis presente:

# Database Variables
DB_ENGINE= (tipo de banco que utilizaremos)
DB_HOST= (hostname do banco de dados)
DB_PORT= (porta do banco de dados)
DB_USER= (usuário de acesso do banco de dados)
DB_PASSWORD= (senha de acesso do usuário)
DB_DATABASE= (nome do banco)
DB_ENTITIES= (formulação para encontrar os arquivos de entidades da API)

# JWT Variables
JWT_KEY= (uma chave para criarmos tokens JWT)

# API Variables
API_PORT= (porta em que você irá rodar, recomendamos a 5000)
API_URL= (a url da sua API, recomendamos inserir 'http://localhost:5000'.)

# Integration Variables
FRONTEND_URL= (a url do seu front-end, geralmente 'http://localhost:3000'.)

# Application Environment
NODE_ENV= (o ambiente em que seu projeto será executado em runtime, recomendamos 'local' ou 'development' para este projeto)

Ao preenchermos a .env corretamente, teremos algo similar a isso:

# Database Variables
DB_ENGINE=mysql (P.S: PODEMOS USAR POSTGRES)
DB_HOST=localhost
DB_PORT=3306 (OU 5432, PARA POSTGRES)
DB_USER=SEU_USUARIO_AQUI
DB_PASSWORD=SUA_SENHA_AQUI
DB_DATABASE=wits
DB_ENTITIES=dist/**/*.entity{.ts,.js} (PREENCHER DESTE MODO)

# JWT Variables
JWT_KEY=MINHA_CHAVE-JWT

# API Variables
API_PORT=5000
API_URL=http://localhost:5000

# Integration Variables
FRONTEND_URL=http://localhost:3000

# Application Environment
NODE_ENV=development

Após isso, podemos executar os scripts de criação e seeding do banco de dados. Na linha de comando, rodamos:

npm run db:create

E depois:

npm run db:seed

A API irá concatenar o nome do banco de dados com o ambiente, caso este seja diferente de production, e assim, teremos um banco com o nome wits_development na instância de banco de dados que você tiver inserido acima.

Com isso, o seed será efetuado e as entidades pré-definidas estarão presentes no banco para que você possa testar a aplicação e consumi-la.

Com isso, podemos finalmente lançar a nossa aplicação. Com isso, basta que digitemos na linha de comando:

npm run start:dev

A aplicação irá conectar ao banco de dados caso tudo tenha sido corretamente instalado e configurado, e assim poderemos utilizá-la e testá-la.

Swagger

Após isso, poderemos acessar a documentação dos endpoints através do endpoint costumizado do Swagger. Acessemos a seguinte URL: localhost:{PORTA_DA_API}/swagger

Chegaremos então à seguinte tela, contendo todos os endpoitns da nossa API, prontos para serem vistos:

Com isso, podemos começar a consumi-la e utilizá-la para manipular os dados nela existentes e que virão a existir.

Testes Unitários

Para rodar os testes unitários da aplicação, é preciso alterar o valor da variável NODE_ENV para test. Após isso, precisamos criar o banco de testes e seedá-lo para efetuar os testes. Para isso, rodamos:

npm run db:create

E depois:

npm run db:seed

Por fim, podemos rodar o script de testes do Jest:

npm run test:watch

Com isso, podemos escolher quais suites de testes desejamos rodar.

Tecnologias Utilizadas

Equipe