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
O projeto está organizado em duas partes principais:
- 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
- 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
| 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 |
- 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
- Á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
- Dashboard com progresso das metas
- Histórico de refeições
- Análise nutricional detalhada
- Relatórios de consumo
- Node.js 18+
- npm ou yarn
- Expo CLI
- Conta AWS
- Banco PostgreSQL
- Chave da OpenAI API
# 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# 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 # iOSDATABASE_URL=postgresql://user:password@host:port/database
JWT_SECRET=your-jwt-secret
OPENAI_API_KEY=your-openai-api-keyConfigure a URL da API em src/services/httpClient.ts
📦 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
- 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
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
