Skip to content

augustolfp/dietinha_backend

Repository files navigation

⚠️ Work in Progress!


DIETINHA: Back end [versão 2]


Descrição

Este projeto é a segunda versão da API desenvolvida para registrar e contabilizar o consumo diário de macronutrientes, que utiliza dados nutricionais da tabela TACO - UNICAMP.

Principais mudanças em relacão à v1

  • Implementação do Firebase Auth para Autorização e Autenticação;
  • Uso do Prisma Client para a organização das consultas ao Banco de dados;
  • Adesão do padrão OpenAPI para documentação dos endpoints;

A primeira versão dessa API pode ser conferida aqui.


Como utilizar a API

A documentação dos Endpoints no padrão OpenAPI pode ser conferida no seguinte endereço:


Para acessar rotas autenticadas, será necessário obter um Access Token, fornecido pelo Firebase Auth.

É possível obter um Access Token válido sem a necessidade do Frontend, através da aplicação React standalone que foi implementada neste repositório, e está disponível em:


Mais informações a respeito da aplicação standalone em /standalone_authentication.


Como configurar um ambiente de desenvolvimento

Esta API pode ser executada em um ambiente de desenvolvimento utilizando o Docker:

  1. Clone o repositório:

    git clone https://github.com/augustolfp/dietinha_backend.git
  2. Configure as variáveis de ambiente:

    • Configure o .env na raiz do projeto, conforme o padrão do .env.example;
    • Crie uma instância na plataforma Firebase Auth, e configure as credenciais no privatekey.json, no caminho ./src/firebase, conforme o padrão do privatekey.example.json;
  3. Execute o comando na raiz do projeto para rodar o ambiente de desenvolvimento:

    docker compose -f docker-compose-dev.yml up --build
  4. A API estará disponível:

    • Pode ser acessada em: http://localhost:3001/v2;
    • Um contâiner rodando o pgAdmin será configurado. Para acompanhar o Banco de dados, acesse: http://localhost:5555. Credenciais padrão estão disponíveis no arquivo Docker-compose-dev;
    • Existe um Bind Mount configurado no arquivo Docker de desenvolvimento, de modo que alterações no código refletem automaticamente na instância local.

Pipeline de Deploy

  • A API está configurada em uma Instância EC2 da AWS, e compartilha um Application Load Balancer com sua versão antiga. A estrutura pode ser vista no diagrama a seguir:

  • Um Github runner está configurado para rodar quando há uma alteração na Branch main, aplicando as modificações em produção.

    PS: Para utilizar o runner, é necessário configurá-lo na instância desejada, e adicionar as Secret Variables no Github, conforme a nomeação presente no workflow "deploy.yml".


Ferramentas utilizadas


Testes

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages