Nova Threads is a modern, full-stack Fashion-Hub built with React, TypeScript, and Supabase. It features a complete shopping experience including product browsing, cart management, secure checkout, user authentication, and an admin dashboard for inventory management.
- Responsive Design: Fully mobile-responsive UI built with Tailwind CSS.
- Product Discovery: Filter products by category (Clothing, Shoes, Accessories) and search by name.
- Detailed Product Views: High-quality image galleries, size/color selection, and customer reviews.
- Smart Cart: Persistent shopping cart with real-time total calculation and quantity adjustments.
- Secure Checkout: Integrated order processing with Supabase backend.
- User Accounts: Profile management (avatar, full name) and order history tracking.
- Role-Based Access Control (RBAC): Special dashboard accessible only to Admins.
- Inventory Management: Add new products (image, price, description) and delete obsolete items.
- Real-time Database: Instant updates using Supabase Realtime subscriptions.
- Secure Auth: Row Level Security (RLS) ensures users can only access their own data.
- Framework: React + Vite
- Language: TypeScript
- Styling: Tailwind CSS
- Components: Shadcn UI + Lucide React (Icons)
- State Management: React Context API (Cart) + React Query (Server State)
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Storage: Supabase Storage (for product images & avatars)
Follow these steps to run the project locally.
git clone https://github.com/mkaify/nova-threads.git
cd nova-threadsnpm install
Create a .env file in the root directory and add your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
Run the following SQL in your Supabase SQL Editor to set up the tables and security policies:
-- Create Profiles Table
CREATE TABLE public.profiles (
id UUID REFERENCES auth.users(id) ON DELETE CASCADE PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
role TEXT DEFAULT 'customer',
full_name TEXT,
avatar_url TEXT
);
-- Create Products Table
CREATE TABLE "Products" (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
name TEXT NOT NULL,
description TEXT,
price DECIMAL(10,2) NOT NULL,
category TEXT,
image TEXT,
stock INTEGER DEFAULT 0,
archived BOOLEAN DEFAULT false
);
-- Enable RLS (Security)
ALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY;
ALTER TABLE "Products" ENABLE ROW LEVEL SECURITY;
-- (Add other tables: Orders, OrderItems, Reviews as needed)
npm run dev
Open http://localhost:5173 to view it in the browser.
Contributions are welcome!
-
Fork the project.
-
Create your feature branch (
git checkout -b feature/AmazingFeature). -
Commit your changes (
git commit -m 'Add some AmazingFeature'). -
Push to the branch (
git push origin feature/AmazingFeature). -
Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Muhammad Kaif - LinkedIn Profile - kaifurrehman46@gmail.com
Project Link: https://github.com/mkaify/nova-threads




