MenuMind is a smart, AI-powered food recommendation web application that suggests personalized meals based on your preferences, location, weather, and time of day.
- AI-Powered Recommendations: Uses Google Gemini AI to suggest personalized food choices
- Context-Aware: Considers weather, time, location, and personal preferences
- Progressive Web App (PWA): Install and use like a native mobile app
- Modern UI: Glass-morphism design with smooth animations
- Korean Language Support: Fully localized interface and AI responses
- Real-time Weather Integration: Weather-based food suggestions
- User Preference Learning: Adapts to your food choices over time
- Ruby 3.2+
- Node.js 18+
- PostgreSQL 14+
-
Clone the repository
git clone <repository-url> cd food-menu-app
-
Setup Backend
cd backend bundle install cp .env.example .env # Add your API keys to .env file rails db:create db:migrate db:seed rails server -p 3001
-
Setup Frontend
cd frontend npm install cp .env.example .env.local # Configure API URL in .env.local npm run dev
-
Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api/v1
- Health Check: http://localhost:3001/up
-
Google Gemini API Key
- Get from: https://makersuite.google.com/app/apikey
- Add to
backend/.env:GEMINI_API_KEY=your_key
-
OpenWeather API Key
- Get from: https://openweathermap.org/api
- Add to
backend/.env:OPENWEATHER_API_KEY=your_key
Backend (.env)
GEMINI_API_KEY=your_gemini_api_key
OPENWEATHER_API_KEY=your_openweather_api_key
FRONTEND_URL=http://localhost:3000Frontend (.env.local)
NEXT_PUBLIC_API_URL=http://localhost:3001/api/v1- Ruby on Rails 8.0 (API mode)
- PostgreSQL
- Google Gemini AI
- OpenWeather API
- Next.js 15 with App Router
- TypeScript
- Tailwind CSS
- PWA capabilities
The app can be installed as a Progressive Web App:
- Open the app in a mobile browser
- Look for "Add to Home Screen" prompt
- Install and use like a native app
# Test the full application
ruby test_full_app.rb
# Frontend tests
cd frontend && npm test
# Backend tests
cd backend && bundle exec rspec- Connect GitHub repository
- Set root directory to
/backend - Add environment variables
- Deploy automatically
- Connect GitHub repository
- Set root directory to
/frontend - Configure build settings
- Deploy automatically
POST /api/v1/users- Create userGET /api/v1/users/{uuid}- Get userPOST /api/v1/users/{uuid}/recommendations- Create recommendationGET /api/v1/users/{uuid}/recommendations- List recommendationsPATCH /api/v1/users/{uuid}/recommendations/{id}/respond- Respond to recommendation
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License.