A comprehensive pregnancy tracking application with personalized meal planning, nutrition tracking, and an AI companion powered by LLMs.
- Weekly meal planner with breakfast, lunch, dinner, and snacks
- "Eat the Rainbow" tracking with visual progress
- Daily nutrient summary
- Food safety warnings for pregnancy - UK NHS compliant.
- Drag-and-drop interface for easy meal management
- Conversational AI assistant powered by LLMs.
- Natural language food and meal logging
- Sleep and symptom tracking via conversation
- Personalized pregnancy advice and milestone information
- Context-aware responses based on your pregnancy week
- Sleep hours and quality logging
- Symptom tracking (nausea, fatigue, etc.)
- Daily health summaries
- Visual indicators integrated into meal planner
- Light/Dark mode toggle
- Responsive design
- Real-time updates
- Intuitive drag-and-drop interactions
- FastAPI - Modern Python web framework
- PostgreSQL - Primary database
- Google ADK - AI agent framework
- Claude API (Anthropic) - AI conversation engine
- Next.js 15 - React framework
- TypeScript - Type-safe JavaScript
- CSS Variables - Theme system
cd app
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
cp .env.local.example .env.local
# Edit .env.local with your settings
npm run devmidwaife/
βββ app/ # FastAPI backend
β βββ main.py # Application entry point
β βββ db/ # Database connections and migrations
β βββ meals/ # Meal planning routes and services
β βββ users/ # User management
β βββ daily_logs/ # Sleep and symptom tracking
β βββ midwaife/ # AI agent implementation
β βββ agent.py # Claude agent configuration
β βββ tools/ # AI agent tools
βββ frontend/ # Next.js frontend
β βββ src/
β β βββ app/
β β β βββ components/ # React components
β β β βββ context/ # React context (theme)
β β β βββ lib/ # API client and utilities
β β β βββ globals.css # Global styles
β βββ package.json
βββ database/ # Database schemas and migrations
β βββ schema_postgresql_local.sql
β βββ migrations/
βββ docker-compose.yml # Docker orchestration
βββ .env.example # Environment variables template
βββ README.md # This file
GET /api/meals/foods- List all foodsGET /api/meals/foods?q={query}- Search foodsPOST /api/meals/upsert- Create/update mealDELETE /api/meals/{meal_id}- Delete meal
GET /api/daily-logs/{user_id}/{date}- Get daily logPOST /api/daily-logs/upsert- Create/update daily logDELETE /api/daily-logs/{user_id}/{date}- Delete daily log
POST /api/agent/chat- Send message to AI companionGET /api/agent/greeting/{user_id}- Get daily greetingGET /api/agent/messages/{user_id}- Get conversation history
users- User profiles and pregnancy informationfoods- Food database with nutritional infonutrients- Nutrient definitionsfood_nutrients- Food-nutrient relationshipsmeals- User mealsmeal_items- Meal-food relationshipsdaily_logs- Sleep and symptom trackingchat_messages- AI conversation history
ANTHROPIC_API_KEY- Claude API key
The AI companion has access to specialized tools:
get_user_info_tool- Retrieve user profile and pregnancy weekget_current_week_meals_tool- View current meal planget_rainbow_summary_tool- Check rainbow color consumptionlog_sleep_tool- Log sleep data from conversationlog_symptoms_tool- Log symptoms from conversationget_daily_log_tool- Retrieve health logs
- Supports 5 meal types: breakfast, lunch, dinner, snacks, supplements
- Automatic nutrient aggregation per day
- Rainbow color tracking (5 color categories)
- Food safety indicators for pregnancy
- Weekly milestones and nutrition tips
- System preference detection
- Manual toggle with persistent storage
- Smooth theme transitions
- Accessible contrast ratios
- Built with Claude Code (Anthropic)
- Powered by Claude AI
- Nutrition data sourced from USDA and pregnancy nutrition research