Build a Cash-on-Delivery Store + Admin Dashboard

Create a Cash-on-Delivery store with a Supabase backend and admin dashboard.

Roadmap & Resources

Create the Orders System in Supabase

Create a new Supabase project

Open Supabase

https://supabase.com/?utm_source=partner&utm_medium=social&utm_campaign=supasquad&dub_id=faVfKdcLWvKCbYNp

Open SQL Editor

Run SQL Code 1 — Create Orders Table

-- Create orders table create table if not exists public.orders ( id uuid primary key default gen_random_uuid(), customer_name text not null, phone text not null, email text, city text not null, address text not null, country text default 'United States', product_name text not null, product_variant text, quantity int not null default 1, notes text, status text not null default 'pending', -- pending, confirmed, shipped, cancelled created_at timestamptz default now() ); -- Enable RLS alter table public.orders enable row level security;

Run SQL Code 2 — Create Profiles Table

-- Create profiles table create table if not exists public.profiles ( user_id uuid primary key references auth.users(id) on delete cascade, role text not null default 'user' ); -- Enable RLS alter table public.profiles enable row level security;

Create an admin user in Authentication → Users

Run SQL Code 3 — Assign Admin Role

Replace USER_ID with your UID

insert into public.profiles (user_id, role) values ('PUT_USER_ID_HERE', 'admin');

SQL Codes — Security Policies (RLS)

SQL Code 4 — Profiles Read Policy

-- Profiles are readable by owner create policy "Profiles are readable by owner" on public.profiles for select to authenticated using (auth.uid() = user_id);

SQL Code 5 — Public Order Insert Policy

-- Public can create orders create policy "Public can create orders" on public.orders for insert to anon with check ( status = 'pending' );

SQL Code 6 — Admin View Orders Policy

-- Admins can view all orders create policy "Admins can view all orders" on public.orders for select to authenticated using ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) );

SQL Code 7 — Admin Update Orders Policy

-- Admins can update all orders create policy "Admins can update all orders" on public.orders for update to authenticated using ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) ) with check ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) );

Copy Project URL and Publishable Key

Build the Store with an Order Form

Checklist

Enter your Supabase Project URL

Enter your Supabase Publishable Key

Copy the generated prompt

Generate the store page in Google AI Studio

Submit a test order

Verify the order in Supabase → Orders table

Prompt Used in This Step

Prompt 1 — Generate Store + Order Form

You are building a web app INSIDE this Google AI Studio project. Task: Create a beautiful, premium, light-mode single-page Cash-on-Delivery (COD) store TEMPLATE (one product) that is simple and beginner-friendly to customize. IMPORTANT OUTPUT RULES: - Do NOT paste the full HTML/CSS/JS code in the chat. - Instead, create/update the project files directly. - After you finish, reply with: 1) A short bullet summary of what you built 2) Where beginners should edit the template (the exact variables/sections) Design (Light Mode): - Clean white / soft light gray background with a subtle pastel gradient. - Modern premium SaaS look (Apple/Stripe style). - Elegant spacing, rounded corners, soft shadows. - Looks great on mobile. Template placeholders (make them easy to edit): - STORE_NAME: "YOUR STORE NAME" - PRODUCT_NAME: "YOUR PRODUCT NAME" - PRODUCT_DESCRIPTION: "YOUR PRODUCT DESCRIPTION" - PRICE_PER_UNIT: 49 - CURRENCY: "USD" - Variants: "Variant A", "Variant B", "Variant C" - Default country: "United States" Sections to include (keep it simple): 1) Header (store name + link scroll to “How COD Works”) 2) Hero (product name, description, CTA buttons) 3) Benefits (3 cards) 4) How COD Works (3 steps) 5) Order Form (most important) + Order Summary (price x quantity) 6) FAQ (3 items) 7) Footer Supabase (INSERT only): - Use Supabase JS client. - Use placeholders: SUPABASE_URL = "{{SUPABASE_URL}}" SUPABASE_PUBLISHABLE_KEY = "{{SUPABASE_PUBLISHABLE_KEY}}" - On form submit: INSERT into table "orders" with: customer_name, phone, email, city, address, country, product_name, product_variant, quantity, notes, status="pending" Critical rules: - INSERT only. Do NOT use select/update/delete. - Show success banner on success, generic error banner on failure. - Validate required fields with small inline errors. - Disable the submit button while sending. Now build it inside the project so I can run it immediately.

Supabase Project URL

Paste your Supabase Project URL here

Supabase Publishable Key

Paste your Supabase publishable key here

Create the Admin Dashboard

Checklist

Enter your Supabase Project URL

Enter your Supabase Publishable Key

Copy the generated prompt

Generate the admin dashboard in Google AI Studio

Log in using the Supabase admin account

Prompt Used in This Step

Prompt 2 — Generate Admin Dashboard

You are an expert full-stack engineer. Build a modern admin dashboard for managing Cash-on-Delivery (COD) orders using Supabase. Use the following Supabase credentials: SUPABASE_URL = "{{SUPABASE_URL}}" SUPABASE_KEY = "{{SUPABASE_KEY}}" The database contains a table called: orders Fields include: customer_name, email, phone, city, address, product_variant, quantity, status, created_at. The dashboard should allow an admin to: • log in • view order statistics • see recent orders • search and filter orders • update order status • customize the application name in settings Design it as a clean modern SaaS dashboard with a light Apple-style UI. Keep the implementation simple and produce a fully working result.

Supabase Project URL

Paste your Supabase Project URL here

Supabase Publishable Key

Paste your Supabase Publishable Key here

Deploy the Project

Checklist

Save the project to GitHub from Google AI Studio

Create a Node.js Web App hosting on Hostinger

Import the GitHub repository

Open the live project URL

Hosting Used in This Step

Deploy on Hostinger

Publish this project with the same setup shown in the video.

RECOMMENDED

https://www.hostg.xyz/SHJ9M

Upgrade — Automatic Email Notifications

This upgrade makes the store more practical by sending automatic emails whenever a new order is placed.

- The store owner receives a new order email

- The customer receives an order confirmation email

Make Your AI Store Send Emails Automatically (Supabase Tutorial)

Watch Tutorial

https://www.youtube.com/watch?v=NK6ztA_-0cE