https://github.com/omarj9/recipo
A Recipe Finder Web App with admin dashboard, built using Nextjs 15 and Postgresql database
https://github.com/omarj9/recipo
better-auth drizzle-kit drizzle-orm google-auth nextjs otpauth zod
Last synced: about 2 months ago
JSON representation
A Recipe Finder Web App with admin dashboard, built using Nextjs 15 and Postgresql database
- Host: GitHub
- URL: https://github.com/omarj9/recipo
- Owner: OmarJ9
- Created: 2025-03-23T23:29:02.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-01T18:20:43.000Z (2 months ago)
- Last Synced: 2025-04-01T19:32:38.704Z (2 months ago)
- Topics: better-auth, drizzle-kit, drizzle-orm, google-auth, nextjs, otpauth, zod
- Language: TypeScript
- Homepage:
- Size: 16.9 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ฅ Recipo - Find Your Perfect Recipe
Recipo is your ultimate recipe finder web app that helps you discover delicious dishes from around the world! Browse recipes by country, save your favorites, and create your own culinary journey.
## Star โญ the repo if you like what you see ๐.
## ๐ Features
- ๐ **Country-based Recipe Search** - Find recipes specific to different countries and cultures
- ๐ **Advanced Filtering** - Filter recipes by country or difficulty
- ๐ค **User Accounts** - Login with email OTP or Google Auth
- โค๏ธ **Favorite Recipes** - Add the recipes you like to your favorites
- ๐ **Rate or Comment** - Add a rating and comments to recipes
- ๐ **SEO Optimization** - Optimize SEO for better search engine indexing
- ๐ **Admin Dashboard** - Manage recipes, countries, and users (admin access only)## ๐ ๏ธ Tech Stack
- โ๏ธ **Frontend**: Next.js 15, React 19, Tailwind CSS, Shadcn UI
- ๐ **Authentication**: Better-Auth
- ๐พ **Database**: PostgreSQL, Drizzle ORM
- ๐งช **Form Validation**: React Hook Form, Zod## ๐ง Getting Started
### Prerequisites
- Node.js 18+
- npm or yarn
- PostgreSQL database (supabase, neon...)### Installation
1. Clone the repository:
```bash
git clone https://github.com/OmarJ9/recipo.git
cd recipo
```2. Install dependencies:
```bash
npm install
# or
yarn install
```3. Set up environment variables:
Create a `.env` file in the root directory with:```
DATABASE_URL=your_postgresql_database_url
BETTER_AUTH_SECRET=your_better-auth_secret
BETTER_AUTH_URL=http://localhost:3000
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
```4. Migrate the database:
```bash
npx drizzle-kit migrate
# or
yarn drizzle-kit migrate
```5. Start the development server:
```bash
npm run dev
# or
yarn dev
```6. Open [http://localhost:3000](http://localhost:3000) in your browser.
## ๐ฅ๏ธ Showcase
Here are some screenshots showcasing the web application:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
## ๐ Project Structure
```
recipo/
โโโ src/ # Source files
โ โโโ actions/ # Server actions
โ โโโ app/ # App router components
โ โ โโโ (auth)/ # Authentication routes
โ โ โโโ admin/ # Admin dashboard
โ โ โโโ recipes/ # Recipe-related pages
โ โ โโโ api/ # API routes
โ โโโ components/ # UI components
โ โโโ database/ # Database configurations
โ โโโ hooks/ # Custom React hooks
โ โโโ lib/ # Utility functions
โ โโโ types/ # TypeScript type definitions
โโโ public/ # Static files
```