Skip to content

MohammadTahaTalebi/Foodexy

Repository files navigation

Foodexy Banner

Foodexy — Food Ordering Demo

Modern, motion-first demo built with Next.js, Supabase, and Prisma.

Next.js TypeScript TailwindCSS Swiper Prisma Supabase shadcn/ui


Overview

Foodexy is a demo food ordering platform demonstrating:

  • Clean Next.js 15 architecture with App Router & RSC
  • Supabase Auth and Prisma data layer
  • Motion-first UX via Framer Motion
  • Swiper-powered carousels
  • TailwindCSS + shadcn/ui for fast, consistent UI

Note: This is a demo. Orders are not processed.

UI Motion Preview


Features

  • Authentication with Supabase (login/register)
  • Menu browsing with categories, search, and lazy images
  • Demo cart (add/update/remove) with persisted state
  • Meal comments with optimistic updates
  • Light/Dark theme, accessible keyboard navigation
  • Page/section transitions via Framer Motion
  • Carousels via Swiper

Architecture

Next.js Frontend (Next.js 15)
App Router, RSC where appropriate, route handlers for APIs, ISR for stable pages.

Prisma Data Layer (Prisma)
Prisma models for User, Meal, Category, CartItem, Comment with migrations & seeding.

Supabase Auth & DB (Supabase)
Postgres database, email/password auth, optional RLS policies.

Swiper Carousels
Hero/menu sliders with accessibility and touch support.

TailwindCSS Styling
TailwindCSS + shadcn/ui components, utility-first with design tokens.


Getting Started

Prerequisites

  • Node.js 18+
  • npm / yarn / pnpm
  • Supabase project (Postgres)

1) Clone & Install

git clone https://github.com/your-username/foodexy.git
cd foodexy

# choose one
pnpm install
# or
yarn install
# or
npm install

2) Environment

Create a .env in the project root:

NEXT_PUBLIC_SUPABASE_URL="YOUR_SUPABASE_URL"
NEXT_PUBLIC_SUPABASE_ANON_KEY="YOUR_SUPABASE_ANON_KEY"

DATABASE_URL="YOUR_DATABASE_URL"   # Prisma pooled connection
DIRECT_URL="YOUR_DIRECT_URL"       # Direct (migrations)

3) Prisma & DB

npx prisma generate
npx prisma migrate dev --name init
# optional
npx prisma db seed

4) Dev Server

pnpm dev
# or
yarn dev
# or
npm run dev

Open http://localhost:3000


Project Structure

foodexy/
├─ prisma/
│ ├─ schema.prisma
│ └─ seed.ts
├─ public/
│ └─ images/
├─ src/
│ ├─ app/
│ │ ├─ (main)/
│ │ ├─ authentication/
│ │ ├─ email-sent/
│ │ ├─ globals.css
│ │ └─ layout.tsx
│ ├─ components/
│ │ ├─ common/
│ │ └─ ui/
│ │ ├─ CommentForm.tsx
│ │ ├─ PopularSlider.tsx
│ │ ├─ ReviewSlider.tsx
│ │ ├─ ShoppingCartPopover.tsx
│ │ ├─ UserMenuItems.tsx
│ │ ├─ login-form.tsx
│ │ ├─ register-form.tsx
│ │ └─ shopDetailClient.tsx
│ ├─ constants/
│ ├─ hooks/
│ ├─ lib/
│ └─ middleware.ts
├─ .gitignore
├─ README.md
├─ next-env.d.ts
├─ next.config.ts
├─ package-lock.json
├─ package.json
├─ postcss.config.mjs
└─ tsconfig.json

Releases

No releases published

Packages

 
 
 

Contributors