CulinAIry is an AI-powered recipe generator and meal planning application. It helps users discover new recipes based on available ingredients and dietary preferences, and create personalized meal plans.
- Recipe Generation: Generate recipes using ingredients you have on hand
- Personalized Meal Plans: Create weekly meal plans based on your preferences
- Save Favorites: Store your favorite recipes for future reference
- User Authentication: Secure login with Firebase authentication
- Responsive Design: Works on desktop and mobile devices
- React.js
- React Router for navigation
- Material UI components
- TailwindCSS for styling
- Firebase Auth for authentication
- Axios for API requests
- Node.js and Express
- OpenAI GPT-4 for recipe generation
- Firebase Admin SDK
- PostgreSQL database
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── context/ # React context providers
│ │ ├── pages/ # Page components
│ │ ├── styles/ # CSS and styling files
│ │ └── utils/ # Utility functions
│ ├── public/ # Static assets
│ └── package.json # Frontend dependencies
│
└── server/ # Node.js backend
├── src/
│ ├── controllers/ # API request handlers
│ ├── routes/ # API endpoints
│ ├── firebase/ # Firebase configuration
│ └── configs/ # Configuration files
├── server.js # Main server file
└── package.json # Backend dependencies
- Node.js (v14 or higher)
- npm or yarn
- Firebase account
- OpenAI API key
- PostgreSQL database
- Clone the repository
git clone https://github.com/yourusername/CulinAIry.git
cd CulinAIry
- Install backend dependencies
cd server
npm install
- Create a
.env
file in the server directory with your configuration:
PORT=5000
OPENAI_API_KEY=your_openai_api_key
DATABASE_URL=your_postgres_connection_string
- Install frontend dependencies
cd ../client
npm install
- Create a
.env
file in the client directory:
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_FIREBASE_API_KEY=your_firebase_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_firebase_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
REACT_APP_FIREBASE_APP_ID=your_firebase_app_id
- Start the backend server
cd server
npm run dev
- Start the frontend development server
cd client
npm start
- Access the application at
http://localhost:3000
POST /api/recipes/generate
- Generate a recipe based on ingredientsGET /api/recipes/saved/:uid
- Get saved recipes for a userPOST /api/meal-planner/generate
- Generate a meal plan
- Recipe sharing functionality
- Nutritional information for recipes
- Advanced dietary restriction filtering
- Shopping list generation from meal plans
- Mobile app version
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.