Maison is a premium, modern e-commerce marketplace for curated apparel, footwear, electronics, and home goods. Built with a highly responsive, aesthetics-focused interface using React, Vite, Tailwind CSS, and Supabase.
- 🛍️ Curated Catalog: Beautiful grid layouts with tag highlights (New, Bestseller, Sale) and rating stars.
- 🔍 Advanced Search & Filter: Filter products by categories, brands, price range, and ratings.
- 🛒 Persistent Shopping Cart: Sliding sidebar cart with automatic subtotaling, shipping calculation, and secure checkout simulation.
- ❤️ Wishlist: Save your favorite items to a personal wishlist (fully synchronized with the database).
- 🌗 Dark Mode: Sleek, harmonic custom color palette transitions between light and dark modes.
- 🔐 User Authentication: Full signup/signin system powered by Supabase Auth with secure password constraints.
- 📍 Address Book & Orders: Manage default shipping addresses and view order history records.
- Frontend Core: React 18, TypeScript
- Build Tool: Vite
- Routing: React Router v7
- Styling: Tailwind CSS v3, PostCSS
- Icons: Lucide React
- Backend-as-a-Service: Supabase (Postgres DB, Auth, RLS Policies)
- Deployment: Vercel (with client-side SPA routing rules)
Make sure you have Node.js (v18 or higher) and npm installed.
-
Clone the Repository:
git clone https://github.com/Abhishek0964/e-commerce_web.git cd e-commerce_web -
Install Dependencies:
npm install
-
Configure Environment Variables: Create a
.envfile in the root directory and specify your Supabase API credentials:VITE_SUPABASE_URL=https://your-project-ref.supabase.co VITE_SUPABASE_ANON_KEY=your-anon-api-key
-
Initialize Database Schema: Apply the migrations found in the
/supabase/migrationsfolder to your Supabase instance to create tables, populate seeds, and set up Row Level Security (RLS) policies. -
Start Dev Server:
npm run dev
Open http://localhost:5173/ in your browser.
To compile a highly optimized production bundle:
npm run buildThis builds static assets into the dist/ directory. You can preview the production bundle locally with:
npm run previewWhen deploying to Vercel, please ensure the following:
- Environment Variables:
Configure
VITE_SUPABASE_URLandVITE_SUPABASE_ANON_KEYunder the project settings on Vercel. - SPA Routing:
A
vercel.jsonfile is included in this repository to rewrite all subroute requests (like/shopor/checkout) toindex.html, preventing Vercel from throwing 404 errors on direct navigation.
├── public/ # Static assets (favicons, manifest)
├── src/
│ ├── components/ # Reusable UI & layout elements
│ │ ├── layout/ # Header, Footer, Sidebar Cart Drawer
│ │ └── ui/ # Toast, Price, Badge, Skeleton loaders
│ ├── context/ # React Context Providers (Auth, Cart, Wishlist, Theme)
│ ├── lib/ # Client queries, formatting utilities, hooks
│ ├── pages/ # Main view templates (Shop, Product details, Checkout)
│ ├── types.ts # Shared TypeScript interfaces
│ └── main.tsx # Application entry point
├── supabase/
│ └── migrations/ # SQL database schema and seeds
├── vercel.json # Vercel routing rules
└── vite.config.ts # Vite bundler configurations
This project is open-source and available under the MIT License.