Skip to content

augustolfp/calories-tracker-backend

Repository files navigation


DIETINHA: Back end


Descrição

API desenvolvida para registrar e contabilizar o consumo diário de macronutrientes, que utiliza dados nutricionais da tabela TACO - UNICAMP.


Como utilizar

Clonar o Repositório

Execute:

git clone https://github.com/augustolfp/calories-tracker-backend.git

Variáveis de Ambiente

Crie um documento .env na pasta raiz do projeto. Utilize o .env.example como base:

DATABASE_URL = postgresql://postgres:postgres@mydatabase:5432/calories_tracker

JWT_SECRET = YOUR_PASSWORD_HERE

POSTGRES_USERNAME=postgres

POSTGRES_PASSWORD=postgres

POSTGRES_DB=calories_tracker

PORT = 5000

Docker

Execute o comando na raiz do projeto para montar as imagens do Docker:

docker compose up --build

A API já deve estar funcionando!


Referência da API

Sign-Up

POST /sign-up
Body Tipo Descrição
name string Obrigatório. Nome do usuário.
email string Obrigatório. Email do usuário.
password string Obrigatório. Senha do usuário.

Sign-In

POST /sign-in
Body Tipo Descrição
email string Obrigatório. Email do usuário.
password string Obrigatório. Senha do usuário.

Registrar novo dia

(Rota autenticada)

POST /add-counted-day

Body Tipo Descrição
day string Obrigatório. Data no formato AAAA-MM-DD.
notes string Opcional. Comentário sobre o dia.
caloriesTarget number Obrigatório. Alvo de calorias do usuário.
proteinsTarget number Obrigatório. Alvo de proteinas do usuário.

Adicionar Refeição em um dia

(Rota autenticada)

POST /add-meal
Body Tipo Descrição
name string Obrigatório. Título da refeição.
description string Opcional. Descrição da refeição.
countedDayId number Obrigatório. Id do dia da refeição.

Adicionar Ingredientes em uma Refeição

(Rota autenticada)

POST /add-ingredients
Body Tipo Descrição
name string Obrigatório. Nome do ingrediente.
mealId number Obrigatório. Id da refeição da qual o igrediente faz parte.
weight number Obrigatório. Peso em gramas do ingrediente.
carbs number Obrigatório. Carboidratos em gramas.
fats number Obrigatório. Gorduras em gramas.
proteins number Obrigatório. Proteinas em gramas.
kcals number Obrigatório. Valor calórico do ingrediente.

Receber dados do usuário

(Rota autenticada)

GET /get-days-data

Remover um ingrediente

(Rota autenticada)

DELETE /delete-ingredient/<INGREDIENT_ID>

Remover uma refeição

(Rota autenticada)

DELETE /delete-meal/<MEAL_ID>

Remover um dia

(Rota autenticada)

DELETE /delete-counted-day/<COUNTED_DAY_ID>

Rota para validação de Token

(Rota autenticada)

GET /validate

HEADER para Rotas Autenticadas

Rotas autenticadas requerem um HEADER no seguinte formato:

Headers Tipo Descrição
Authorization string Obrigatório. Formato Bearer <JWT_TOKEN>.

PS: JWT TOKEN é recebido na resposta do Sign-in!


Exemplo:

headers: {
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImF1Z3VzdG9sZnBAZ21haWwuY29tIiwibmFtZSI6IkFnb3N0aW5obyBDYXJyYXJhIiwidXNlcklkIjoxLCJpYXQiOjE2Njc4NDI4NzMsImV4cCI6MTY2Nzg0NjQ3M30.OHv7pVIyIthAhkGtVrUle2yXrHk7IFAXjZtfNXDO2yc,
        },

Ferramentas utilizadas


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published