A modern full-stack culinary application built with Next.js, featuring AI-powered recipe assistance, web scraping, and comprehensive recipe management. Created for CustomHack.
Watch a full demo of the project on X:
(https://x.com/JuniorDev26/status/1942130221622464720)
- 🍽️ Recipe Management - Browse, create, save, and rate recipes.
- 🤖 AI Chat Assistant - Get culinary help powered by Groq and Ollama.
- 🕷️ Recipe Scraping - Extract recipes from any website using Firecrawl.
- 🔐 Secure Authentication - User management with Better Auth and Google OAuth.
- 📧 Email Integration - Recipe sharing via Resend.
- 🌐 Internationalization - Multi-language support with Lingo.dev.
- 📱 Responsive Design - Beautiful UI with Tailwind CSS and Radix UI.
- 🗄️ Database - PostgreSQL with Prisma ORM hosted on Supabase.
- Next.js 15 - React framework with App Router
- React 18 - Component-based UI
- Tailwind CSS - Utility-first styling
- Radix UI - Accessible component primitives
- Framer Motion - Smooth animations
- TypeScript - Type-safe development
- Supabase - PostgreSQL database hosting
- Prisma - Type-safe database ORM
- Better Auth - Authentication and session management
- Google OAuth - Social authentication
- Groq - Fast AI inference for chat
- Ollama - Self-hosting large language models
- Firecrawl - Web scraping and content extraction
- Resend - Transactional email service
- Lingo.dev - AI-powered internationalization
- Node.js 18+ and pnpm
- Supabase project
- API keys for: Groq, Firecrawl, Resend, Lingo.dev
- Google OAuth credentials
- Clone the repository:
git clone https://github.com/RitamPal26/custom-hack-project.git
cd custom-hack-project- Install dependencies:
pnpm install- Set up environment variables:
cp .env.example .envFill in your API keys and database URL in .env.
- Set up the database:
pnpm prisma generate
pnpm prisma db push- Run the development server:
pnpm devOpen http://localhost:3000 to view the application.
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ ├── auth/ # Authentication pages
│ ├── chat/ # AI chat interface
│ ├── dashboard/ # User dashboard
│ ├── recipes/ # Recipe management
│ └── scrape/ # Web scraping interface
├── components/ # Reusable React components
├── lib/ # Utilities and configurations
└── lingo/ # Internationalization files
prisma/
├── schema.prisma # Database schema
└── migrations/ # Database migrations
Required environment variables (see .env.example):
# Database
DATABASE_URL=your_supabase_postgresql_url
DIRECT_URL=your_supabase_direct_url
# Authentication
BETTER_AUTH_SECRET=your_random_secret
BETTER_AUTH_URL=http://localhost:3000
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_secret
# AI Services
GROQ_API_KEY=your_groq_api_key
NEXT_PUBLIC_TAMBO_API_KEY=your_tambo_api_key
# Web Scraping
FIRECRAWL_API_KEY=your_firecrawl_api_key
# Email
RESEND_API_KEY=your_resend_api_key
RESEND_FROM_EMAIL=your_verified_email
# Internationalization
LINGODOTDEV_API_KEY=your_lingo_api_key- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.
Built with amazing tools and services: