Skip to content

Foodiary é um aplicativo mobile construído com arquitetura serverless utilizando lambdas aws. Além disso, o cálculo de macros das refeições cadastradas é feito através de upload de áudio/foto processado por um agente de IA

License

Notifications You must be signed in to change notification settings

samuka7abr/Foodiary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍽️ Foodiary

Controle sua dieta de forma simples e inteligente

TypeScript React Native Expo TailwindCSS Node.js PostgreSQL AWS Serverless OpenAI

📖 Sobre o Projeto

O Foodiary é um aplicativo mobile de diário alimentar que utiliza inteligência artificial para simplificar o registro de refeições. Com ele, você pode:

  • 🎯 Definir objetivos personalizados (perder, manter ou ganhar peso)
  • 🎤 Registrar refeições por voz - apenas descreva o que comeu
  • 📸 Capturar fotos dos alimentos para análise automática
  • 📊 Acompanhar metas nutricionais calculadas automaticamente
  • 🤖 Processamento inteligente com IA para identificar alimentos e nutrientes

🏗️ Arquitetura

O projeto está organizado em duas partes principais:

📱 Frontend (foodiary-app/)

  • React Native com Expo
  • TypeScript para tipagem
  • TailwindCSS via NativeWind para estilização
  • Expo Router para navegação
  • React Query para gerenciamento de estado
  • React Hook Form + Zod para formulários

⚡ Backend (foodiary-api/)

  • Serverless Framework para deploy na AWS
  • Node.js + TypeScript
  • AWS Lambda para processamento
  • PostgreSQL com DrizzleORM
  • AWS S3 para armazenamento de arquivos
  • AWS SQS para processamento assíncrono
  • OpenAI API para análise de áudio e imagens

🛠️ Stack Tecnológica

Categoria Tecnologias
Mobile React Native, Expo, TypeScript
Estilização TailwindCSS, NativeWind
Backend Node.js, TypeScript, Serverless Framework
Banco de Dados PostgreSQL, DrizzleORM
Cloud AWS Lambda, S3, SQS
IA/ML OpenAI API
Autenticação JWT
Gerenciamento de Estado React Query, Context API

🚀 Funcionalidades

✨ Cadastro Personalizado

  • Definição de objetivos (perder, manter, ganhar peso)
  • Coleta de dados físicos (altura, peso, idade, gênero)
  • Cálculo automático de metas calóricas e nutricionais
  • Seleção do nível de atividade física

🍽️ Registro de Refeições

  • Áudio: Grave uma descrição da refeição
  • Foto: Capture imagens dos alimentos
  • Processamento automático com IA
  • Identificação de alimentos e cálculo nutricional

📊 Acompanhamento

  • Dashboard com progresso das metas
  • Histórico de refeições
  • Análise nutricional detalhada
  • Relatórios de consumo

📦 Instalação e Configuração

Pré-requisitos

  • Node.js 18+
  • npm ou yarn
  • Expo CLI
  • Conta AWS
  • Banco PostgreSQL
  • Chave da OpenAI API

🔧 Backend Setup

# Entre na pasta da API
cd foodiary-api

# Instale as dependências
npm install

# Configure as variáveis de ambiente
cp .env.example .env

# Configure o banco de dados com Drizzle
npm run db:generate
npm run db:push

# Execute localmente
npm run dev

📱 Frontend Setup

# Entre na pasta do app
cd foodiary-app

# Instale as dependências
npm install

# Execute o projeto
npm start

# Para executar em dispositivos específicos
npm run android  # Android
npm run ios      # iOS

⚙️ Variáveis de Ambiente

Backend (.env)

DATABASE_URL=postgresql://user:password@host:port/database
JWT_SECRET=your-jwt-secret
OPENAI_API_KEY=your-openai-api-key

Frontend

Configure a URL da API em src/services/httpClient.ts

📚 Estrutura do Projeto

📦 Foodiary
├── 📱 foodiary-app/          # React Native App
│   ├── src/
│   │   ├── app/              # Navegação (Expo Router)
│   │   ├── components/       # Componentes reutilizáveis
│   │   ├── contexts/         # Context API
│   │   ├── hooks/            # Hooks customizados
│   │   ├── services/         # APIs e serviços
│   │   └── styles/           # Configurações de estilo
│   └── assets/               # Imagens e recursos
│
├── ⚡ foodiary-api/          # Serverless Backend
│   ├── src/
│   │   ├── controllers/      # Controladores das rotas
│   │   ├── functions/        # AWS Lambda functions
│   │   ├── db/               # Schema e configuração do DB
│   │   ├── lib/              # Utilitários
│   │   ├── services/         # Serviços externos (IA, etc)
│   │   └── types/            # Definições de tipos
│   └── serverless.yml        # Configuração do Serverless
│
└── 📄 README.md

🔐 Funcionalidades de Segurança

  • Autenticação JWT
  • Senhas criptografadas com bcrypt
  • Validação de dados com Zod
  • URLs pré-assinadas para upload seguro no S3
  • Sanitização de inputs

👨‍💻 Autor

Samuel Abrao

Samuel Abrao

GitHub Portfolio

Desenvolvedor Full Stack apaixonado por tecnologia e inovação

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Desenvolvido com ❤️ para uma alimentação mais saudável e consciente

About

Foodiary é um aplicativo mobile construído com arquitetura serverless utilizando lambdas aws. Além disso, o cálculo de macros das refeições cadastradas é feito através de upload de áudio/foto processado por um agente de IA

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published