A modern e-commerce platform built with React, TypeScript, and Supabase, featuring Stripe integration for payments.
- 🛍️ Product catalog with dynamic loading
- 🛒 Shopping cart functionality
- 💳 Secure payments via Stripe
- 🎨 Responsive design with Tailwind CSS
- 🔐 Backend powered by Supabase
- 📱 Mobile-friendly interface
- Frontend: React 18, TypeScript, Vite
- Styling: Tailwind CSS
- Backend: Supabase
- Payments: Stripe
- Routing: React Router v7
- Icons: Lucide React
- Node.js (v20 or higher)
- npm or yarn
- Supabase account
- Stripe account
Create a .env file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_STRIPE_PUBLIC_KEY=your_stripe_public_keyFor Supabase Edge Functions, set up:
STRIPE_SECRET_KEYin your Supabase project settings
- Clone the repository:
git clone <repository-url>
cd shopease- Install dependencies:
npm install- Start the development server:
npm run devRun the following SQL in your Supabase SQL editor:
create table products (
id uuid default gen_random_uuid() primary key,
name text not null,
price decimal(10,2) not null,
description text,
image text,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);Deploy the checkout function:
supabase functions deploy create-checkoutnpm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
├── src/
│ ├── components/ # Reusable components
│ ├── context/ # React context providers
│ ├── data/ # Data fetching utilities
│ ├── lib/ # Shared utilities
│ ├── pages/ # Page components
│ ├── types/ # TypeScript definitions
│ └── main.tsx # Application entry point
├── supabase/
│ ├── functions/ # Edge Functions
│ └── migrations/ # Database migrations
└── public/ # Static assets
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - see LICENSE file for details