Modern e-commerce platform built with React, TypeScript, and Supabase. A fully-featured online store with product catalog, shopping cart, favorites, user authentication, and order management.
- User registration and login
- Protected routes with role-based access
- Secure session management with Supabase Auth
- User account management
- Dynamic Product Catalog with advanced filtering by category
- Product Search with real-time results
- Wishlist/Favorites system with persistent storage
- Shopping Cart with quantity management
- Price calculations with discount percentages
- Responsive product cards with hover effects
- Complete checkout flow with address validation
- Multiple delivery methods selection
- Order history and order tracking
- Order status monitoring
- Email notifications for order confirmations
- Add and manage multiple delivery addresses
- Address validation
- Quick address selection during checkout
- Edit/delete addresses
- Responsive design (mobile, tablet, desktop)
- Loading skeletons for better UX
- Toast notifications
- Modal dialogs for actions
- Dark mode ready with Tailwind CSS
- Lazy loading components
- Optimized state management with MobX
- Efficient data fetching
- Image optimization
- React 19 - UI framework
- TypeScript - Type safety
- Vite - Lightning-fast build tool
- Tailwind CSS - Utility-first styling
- React Router - Client-side routing
- MobX - Reactive state management
- Supabase - Backend as a Service (Auth, Database, Storage)
- React Query patterns - Data fetching with custom hooks
- React Toastify - Toast notifications
- Lucide React - Beautiful icons
- Resend - Transactional email delivery for order confirmations
- Vercel - Hosting and CI/CD
- Supabase - PostgreSQL database and authentication
- Deno - Serverless functions for order emails via Resend
src/
βββ api/ # Supabase configuration
βββ assets/ # Static assets
βββ components/ # Reusable UI components
β βββ common/ # Feature-specific components
β β βββ addresses/
β β βββ cart/
β β βββ categories/
β β βββ category/
β β βββ header/
β β βββ order/
β β βββ orders/
β βββ layout/ # Layout components
β βββ protectedRoutes/ # Authentication guards
β βββ skeletons/ # Loading skeletons
β βββ ui/ # Basic UI components
βββ constants/ # Application constants
βββ hooks/ # Custom React hooks
βββ pages/ # Page components
βββ routes/ # Route definitions
βββ store/ # MobX stores
β βββ addressStore
β βββ cartStore
β βββ favoriteStore
β βββ loadingStore
β βββ modalStore
β βββ ordersStore
β βββ userStore
βββ types/ # TypeScript types
βββ utils/ # Helper functions
- User Store - Authentication state, user data
- Cart Store - Shopping cart management with persistence
- Favorite Store - Wishlist functionality
- Address Store - User addresses management
- Orders Store - Order history and details
- Modal Store - Modal dialogs state
- Loading Store - Global loading state
useFetch()- Data fetching with loading/error statesuseSendOrderEmail()- Order confirmation email sending
send-order- Email notifications for new orders via Supabase Functions + Resend integration
- π Admin Dashboard - Order management, product management, analytics
- π Admin Role - User role-based access control (Customer, Admin)
- π Analytics Dashboard - Sales reports, user metrics
- ποΈ Wishlist Sharing - Share favorites with friends
- π³ Payment Integration - Stripe/PayPal integration
- π¦ Inventory Management - Stock tracking for admin
- π Multi-language Support - i18n implementation
β οΈ Admin dashboard is not yet implemented (user-facing features only)β οΈ Role-based access control (RBAC) pending implementation
- Node.js 18+
- npm or yarn
- Supabase account
- Clone the repository
git clone https://github.com/yourusername/ReactShop.git
cd ReactShop- Install dependencies
npm install- Set up environment variables
Create
.env.localfile:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Run development server
npm run dev- Build for production
npm run build- Main - Homepage with featured products
- Category - Products filtered by category
- Product - Detailed product information
- Cart - Shopping cart with checkout flow
- Favorites - Wishlist management
- Addresses - User address management
- Orders - Order history and tracking
- Order - Individual order details
- Account - User profile management
- Auth - Login/Registration pages
- DummyJSON API - Product data source
- Supabase Database - User data, orders, addresses, favorites
- Supabase Auth - User authentication
- Supabase Functions - Email notifications
- Clean, modern UI with Tailwind CSS
- Consistent component library
- Responsive grid layouts
- Smooth transitions and animations
- Professional color scheme with sky/blue accents
- Loading states with skeleton screens
- Protected authentication routes
- Secure session management
- SQL injection prevention via Supabase
- Type-safe API calls with TypeScript
- Environment variable protection
- Code splitting with React Router
- Lazy loading components
- Optimized bundle size with Vite
- Efficient state updates with MobX
- Image lazy loading
- CSS minification with Tailwind
Contributions are welcome! Feel free to submit issues or pull requests.
This project is open source and available under the MIT License.
Vlad - Full Stack Developer
- Live Demo: hesshop.vercel.app
For support, please open an issue on GitHub or contact via email.
Made with β€οΈ using React & TypeScript