Skip to content

Aplicação back-end escrita para o evento Imersão Full Stack && Full Cycle 14.

License

Notifications You must be signed in to change notification settings

fabberr/FullCycle14-nestjs-backend

Repository files navigation

FullCycle14-nestjs-backend

Aplicação back-end escrita para o evento Imersão Full Stack && Full Cycle 14.

Tecnologias/Linguagens utilizadas:

Instalação

# Criar o diretório
$ mkdir -p ~/repos/fullcycle-14
$ cd ~/repos/fullcycle-14

# Clonar o repositório para o diretório local
$ git clone https://github.com/fabberr/FullCycle14-nestjs-backend.git nestjs-app
$ cd nestjs-app

# Gerar o Container Docker da aplicação
$ docker compose build

Os seguintes comandos devem ser executados de dentro do container. Caso ainda não estiver rodando, use o comando docker-compose up para subir o container.

# Entrar no diretório raiz da aplicação
$ cd /home/node/app

# Instalar as dependências do projeto
$ npm install

# Gerar o client do Prisma
$ npx prisma generate

Google API Key

Esta aplicação faz integração com APIs do Google Maps, e portanto é necessário gerar uma Chave de API (gratuita) através do Google Cloud console.

  1. Entre com uma conta do Google
    • Obs.: Uma vez logado, você tem acesso ao trial por 90 dias. Você NÃO será faturado automaticamento ao final do trial.
  2. Navegue até o menu APIs & Services
  3. Clique em + ENABLE APIS AND SERVICES no topo da página
  4. Consulte e habilite as APIs:
    • Places API
    • Directions API
    • Maps JavaScript API
  5. Ainda no Menu APIs & Services, navegue até o menu Credentials
  6. Clique em + CREATE CREDENTIALS no topo da página e selecione a opção API Key
  7. Pronto, sua Chave de API foi criada
    • Obs.: É recomendado acessar/visualizar/copiar a chave somente através do próprio Google Cloud console (menu APIs & Services > Credentials). Não salve esta chave localmente na sua máquina ou em outros serviçõs de cloud.

Variáveis de Ambiente

Após criar sua chave de API do Google, crie um arquivo chamado .env na raiz do repositório (utilize o arquivo .env.example como base) e popule a variável de ambiente GOOGLE_API_KEY com a chave gerada. Popule também a variável DATABASE_URL com a string de conexão do MongoDB.

Este arquivo deve ser armazenado apenas localmente e não deve ser subido para repositórios remotos (não remover regra para arquivos de extensão.env do .gitignore) para evitar que a sua chave de API do Google seja exposta.

# Copiar o arquivo .env base
$ cp .env.example .env

Rodando a Aplicação

# Desenvolvimento
$ npm run start

# Desenvolvimento (watch mode)
$ npm run start:dev

# Debug
$ npm run start:debug

# REPL
$ npm run repl

# Build
$ npm run build

# Produção
$ npm run start:prod

Para confirmar que a aplicação está rodando, use um client HTTP para fazer uma requisição GET para http://localhost:3000/.

Uma coleção de requests pode ser importada para testes da API pelo Insomnia através do arquivo Insomnia.json, na raiz do repositório.