A modern web application that generates personalized meal plans and grocery lists using AI technology. FreshFood helps you plan your meals efficiently while considering dietary preferences, family size, and time constraints.
The main interface where users can customize their meal plan preferences
Detailed view of generated meal plans with nutritional information
Interface for viewing and managing individual recipes
Automatically generated grocery lists with categorized items and quantities
- 🎯 Personalized Meal Plans based on:
- Family size and portions
- Calorie intake goals
- Dietary restrictions (vegetarian, vegan, gluten-free, dairy-free)
- Number of days (1-7)
- Cooking time preferences
- 🤖 AI-Powered Recipe Generation using advanced LLM technology
- 🛒 Smart Grocery Lists with categorized items and quantities
- 💾 Save & Share your favorite meal plans
- 📱 Responsive Design that works on all devices
- 🖨️ Print-Friendly meal plans and shopping lists
- Node.js (v14 or higher)
- LiteLLM Proxy Server
- Clone the repository:
git clone https://github.com/yourusername/freshfood.git
cd freshfood- Install dependencies:
npm install- Create a
.envfile in the root directory:
LITELLM_API_BASE=http://localhost:8000
LITELLM_API_KEY=your_api_key_here
PORT=3000- Launch the application:
# Development mode
npm run dev
# Production mode
npm startVisit http://localhost:3000 to access the application.
freshfood/
├── data/ # Stored meal plans
├── public/ # Static files
│ ├── css/ # Stylesheets
│ ├── js/ # Frontend JavaScript
│ └── index.html # Main HTML file
├── models/ # Data models
├── routes/ # API routes
├── server.js # Express server setup
├── .env # Environment variables
└── package.json # Project dependencies
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/generate-meal-plan |
Generate a new meal plan |
| POST | /api/save-meal-plan |
Save a meal plan |
| GET | /api/saved-meal-plans |
Retrieve saved meal plans |
-
Frontend:
- HTML5, CSS3, JavaScript (ES6+)
- Responsive design with CSS Grid/Flexbox
- Font Awesome icons
- Google Fonts (Poppins)
-
Backend:
- Node.js & Express.js
- File-based storage system
- LiteLLM for AI integration
- CORS enabled
| Variable | Description | Default |
|---|---|---|
LITELLM_API_BASE |
LiteLLM proxy server URL | http://localhost:8000 |
LITELLM_API_KEY |
LiteLLM API key | Required |
PORT |
Application port | 3000 |
FreshFood uses a simple and efficient file-based storage system:
- Meal plans are stored as JSON files in the
datadirectory - No database setup required
- Easy to backup and migrate
- Automatic data directory creation on startup
Start the application in development mode with hot reloading:
npm run devRun API tests:
node test-api.jsWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/NewFeature - Make your changes
- Commit with clear messages:
git commit -m 'Add NewFeature' - Push to your branch:
git push origin feature/NewFeature - Open a Pull Request
-
Permission Issues with Data Directory
# Check directory permissions ls -la data/ # Set correct permissions chmod 755 data/
-
LiteLLM API Issues
- Verify API key in
.env - Ensure LiteLLM proxy server is running
- Check server logs for detailed errors
- Verify API key in
-
Port Already in Use
# Find and kill process using port 3000 lsof -i :3000 kill -9 <PID>
This project is licensed under the MIT License - see the LICENSE file for details.
- LiteLLM for AI integration
- Font Awesome for icons
- Google Fonts for typography
Made with ❤️ by [Your Name]
Note: Replace usernames and other placeholder content before publishing.
