A modern web application that helps you create, manage, and share recipes based on your available ingredients. Built with Next.js, MongoDB, and OpenAI.
-
AI-Powered Recipe Generation
- Generate recipes based on available ingredients
- Specify number of servings, allergies, and cooking utilities
- Option for immediate cooking or preparation in advance
- Includes nutritional information for each recipe
-
Recipe Management
- Save generated recipes to your personal collection
- View detailed recipe information including ingredients and steps
- Interactive checklist for ingredients and cooking steps
- Built-in cooking timers for each step
-
User Authentication
- Secure user registration and login
- JWT-based authentication
- Protected recipe access
-
Recipe Sharing
- Generate shareable links for your recipes
- Share recipes with friends and family
- View shared recipes without authentication
-
Modern UI/UX
- Responsive design for all devices
- Beautiful gradient text and modern styling
- Loading animations and notifications
- Side menu for quick navigation
-
Frontend
- Next.js 15.1.4
- React 19
- TailwindCSS
- Framer Motion
-
Backend
- Next.js API Routes
- MongoDB with Mongoose
- OpenAI API
- JWT Authentication
-
Development
- TypeScript
- ESLint
- Turbopack
- Bun
- Clone the repository:
git clone https://github.com/yourusername/my-recipes.git
cd my-recipes
- Install dependencies:
bun install
- Create a
.env
file in the root directory with the following variables:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
OPENAI_API_KEY=your_openai_api_key
- Run the development server:
bun run dev
- Open http://localhost:3000 in your browser.
MONGODB_URI
: MongoDB connection stringJWT_SECRET
: Secret key for JWT token generationOPENAI_API_KEY
: OpenAI API key for recipe generation
/app
: Next.js app router pages and API routes/components
: Reusable React components/contexts
: React context providers/lib
: Utility functions and database connection/models
: Mongoose models/public
: Static assets/data
: OpenAI function definitions
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
by Elliot