Coder Social home page Coder Social logo

dietinha_backend's Introduction

⚠️ 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

dietinha_backend's People

Contributors

augustolfp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.