Back-end Quimera

Sobre

Esse projeto trata-se de apresentar para os clientes os produtos industrializados e ter a certeza se há ou não a presença dos ingredientes em sua composição e desse modo, aumentar a inclusão e facilitar a vida de quem tem alergias alimentares, em especial as mais graves.

Tecnologias

  • NodeJS
  • Express
  • Prisma
  • JWT
  • Validação com Yup
  • Postgresql

Funcionalidades

  • Integração do Prisma com o banco Postgresql
  • Criação de tabela User com a ORM Prisma
  • CRUD de Users
  • CRUD de Products
  • CRUD de Ingredients
  • CRUD de Feedbacks
  • CRUD de Brands
  • CRUD de Categories
  • Token Controller
  • Validações com a biblioteca Yup
  • Autenticação JWT
  • Criptofrafia do password com bcryptjs
  • Middleware de login
  • Middleware de permissão admin
  • Middleware de tratamento de erros(ExpectionHandler)

Configurações necessárias

Crie um projeto no firebase

  • Acesse https://console.firebase.google.com/u/2/
  • Clique em "adicionar projeto", insira o nome que desejar para seu projeto e clique em "continuar".
  • Desmarque a opção "ativar o google analytics neste projeto", clique em "criar projeto", aguarde a criação e depois clique em "continuar".
  • Na tela principal aparecerá a frase "Comece adicionando o Firebase ao seu aplicativo". Clique no icone "" logo abaixo desta frase, digite um apelido para sua aplicação web e clique em "registrar app".
  • Aparecerá um objeto chamado "firebaseConfig", onde tem as configuraçõesnecessárias para conectar a sua conta do firebase. Esses valores serão adicionados em um arquivo .env que está explicado logo abaixo. Guarde esses valores, não vá perder hein? ;)
  • Após guardar os valores pode clicar em "continuar no console".

Configurar o armazenamento dos arquivos

  • Os arquivos são armazenados no storage do firebase. Para visualizar abra o menu principal e clique em "Storage".
  • Clique em "vamos começar", selecione a opção "Iniciar no modo de teste" e clique em "próxima".
  • Selecione o local desejado do storage (recomendo southamerica), clique em "concluir" e aguarde a criação do storage.
  • Todos os arquivos armazenados poderão ser visualizados nesta página do storage.

Configure o banco de dados relacional de sua preferência

  • Cada banco de dados vai ter suas particularidades, então busque como fazer a configuração inicial do seu banco desejado.
  • Crie o database com o nome que desejar e deixe guardadinha a URL de conexão com seu banco, pois será necessária adicionar no arquivo .env que será criado logo abaixo.

Acesse o projeto através dos comandos a baixo 👇

# Clone este repositório
$ git clone https://github.com/SquadQuimera/back-end.git

# Acesse a pasta do projeto no terminal/cmd
$ cd back-end

# Instale as dependências
$ npm install

# Crie um arquivo .env com os arquivos
- DATABASE_URL="a url do seu banco"
- TOKEN_SECRET="uma chave só sua, pode ser um hash aleatório"
- TOKEN_EXPIRATION=1d(aqui varia, você decide quanto tempo para o token expirar)

# Os valores das variáveis abaixo você encontra no firebase em "configurações do projeto" > "geral".
- FIREBASE_API_KEY="<your-api-key>"
- FIREBASE_AUTH_DOMAIN="<your-auth-domain>"
- FIREBASE_PROJECT_ID="<your-project-id>"
- FIREBASE_STORAGE_BUCKET="<your-storage-bucket-url>"
- FIREBASE_MESSAGING_SENDER_ID="<your-messaging-sender-id>"
- FIREBASE_APP_ID="<your-app-id>"

# Conecte o Prisma com o seu banco, no arquivo
- schema.prisma(obs:caso seu banco não seja o Postgresql)

# Faça as migrates do Prisma a partir do comando
$ npx prisma migrate dev

# Execute a aplicação em modo de desenvolvimento
$ npm run dev

# O servidor iniciará na porta:3333 - acesse <http://localhost:3333>