Recipebook

🍽️ RecipeBook - Full Stack Web App

A beautiful full-stack recipe book with authentication, global recipes, translation, seasonal/regional browsing, and health insights.

Tech Stack


⚙️ Setup

1. Configure Environment Variables

Edit server/.env with your credentials:

MONGO_URI=mongodb+srv://USERNAME:PASSWORD@cluster.mongodb.net/recipebook?appName=Cluster0
JWT_SECRET=any_long_random_string_here
JWT_EXPIRE=7d
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/auth/google/callback
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
CLIENT_URL=http://localhost:3000
PORT=5000

2. MongoDB Atlas

  1. Go to mongodb.com/atlas → Create free cluster
  2. Create a database user with password
  3. Whitelist IP: 0.0.0.0/0 (Network Access)
  4. Copy connection string into MONGO_URI

3. Cloudinary (for image uploads)

  1. Go to cloudinary.com → Free account
  2. Copy Cloud Name, API Key, API Secret from dashboard

4. Google OAuth (optional)

  1. Go to console.cloud.google.com
  2. Create project → Enable Google+ API
  3. OAuth 2.0 Credentials → Add http://localhost:5000/auth/google/callback
  4. Copy Client ID and Secret

🚀 Running the App

Seed sample data (run once):

npm run seed

Start both servers:

npm run dev

Or separately:

# Terminal 1
npm run server

# Terminal 2
npm run client

Open http://localhost:3000


✨ Features

Feature Description
🔐 Auth JWT login/register + Google OAuth
🏠 Home All recipes in responsive card grid with filters
🔍 Search Real-time search by name or ingredient
🎛️ Filters Category, difficulty, region, season, cook time, health score, dietary tags
📖 Detail Full recipe with ingredients, steps, health info
🌐 Translation English / Telugu / Hindi via MyMemory API
🌿 Seasonal Indian season logic (Spring/Summer/Autumn/Winter)
📍 Regional Geolocation-aware regional recipes
❤️ Favorites Global favorites shared across all users
📊 Health Charts: category breakdown, health scores, calories
🛒 Grocery Blinkit/Swiggy/Zepto (India) or Amazon Fresh/Instacart (Global)
📷 Images Cloudinary upload or URL paste
✏️ CRUD Add, edit, delete any recipe