Esta é a Daily Diet API, uma API em Node.js construída com Fastify. Ela permite que os usuários acompanhem suas refeições diárias e gerenciem sua dieta. A API integra-se com um banco de dados SQLite para desenvolvimento e utiliza o Knex para operações de banco de dados. Além disso, incorpora o Zod para validação de dados e outras bibliotecas.
A Daily Diet API oferece os seguintes recursos:
-
👤 Gerenciamento de Usuários:
- ✅ Criação de usuário
- 🔐 Autenticação e autorização do usuário
-
🍽️ Acompanhamento de Refeições:
- ✅ Registro de uma refeição com as seguintes informações:
- Nome
- Descrição
- Data e Hora
- Se a refeição está dentro do plano de dieta ou não
- 🔄 Edição de uma refeição
- ❌ Exclusão de uma refeição
- 📜 Listagem de todas as refeições de um usuário
- 🔍 Visualização de uma única refeição
- ✅ Registro de uma refeição com as seguintes informações:
-
📊 Cálculo de Métricas:
- 📅 Número total de refeições registradas
- 🥗 Número total de refeições dentro do plano de dieta
- 🍔 Número total de refeições fora do plano de dieta
- 🏆 Melhor sequência consecutiva de refeições dentro do plano de dieta por dia
Antes de executar a API, certifique-se de ter o seguinte instalado em sua máquina:
- 🚀 Node.js (versão 18 ou superior)
- ⚙️ NPM (gerenciador de pacotes do Node.js)
Siga estes passos para configurar e executar a Daily Diet API:
-
Clone este repositório em sua máquina local:
git clone https://github.com/gabrielvbauer/daily-diet-api.git
-
Navegue até o diretório do projeto:
cd daily-diet-api
-
Instale as dependências necessárias:
npm install
-
Execute a API:
npm run dev
Antes de iniciar a API, você deve configurar as variáveis de ambiente. Crie um arquivo .env na raiz do projeto de acordo com o .env.example e ajuste as variáveis de ambiente de acordo com suas configurações.
Após concluir as etapas de instalação e configuração, você pode iniciar a API executando o seguinte comando:
npm run dev
A API estará disponível no seguinte endereço: http://localhost:3333.
A API possui os seguintes endpoints:
-
Endpoints de Usuário:
POST /users/register
- Criar um novo usuárioGET /users/metrics
- Obter informações do usuário atual
-
Endpoints de autenticação
POST /auth/login
- Login do usuário (autenticação)POST /auth/refresh-token
- Atualização do token de acesso
-
Endpoints de Refeição:
POST /meals
- Criar uma nova refeiçãoGET /meals
- Obter todas as refeições do usuário atualGET /meals/:id
- Obter uma refeição específicaPATCH /meals/:id
- Atualizar uma refeiçãoDELETE /meals/:id
- Excluir uma refeição
A Daily Diet API utiliza as seguintes tecnologias:
- TypeScript
- Node.js
- Fastify
- Knex
- Zod
- JsonWebToken
Essas tecnologias foram escolhidas para fornecer uma base sólida para o desenvolvimento da API, permitindo a construção de uma aplicação eficiente e segura.
Este projeto está licenciado sob a Licença MIT.