A modern, fully functional e-commerce website for shoes built with React, Redux Toolkit, TailwindCSS, and Firebase.
- Product Catalog: Browse shoes by category with filtering and sorting
- Shopping Cart: Add, remove, and update quantities
- Checkout Process: Secure payment integration
- User Authentication: Email/password and social login (Google, Microsoft, Apple)
- User Profiles: Order history and wishlist management
- Responsive Design: Works on desktop, tablet, and mobile
- TailwindCSS Styling: Clean, modern interface
- Framer Motion Animations: Smooth transitions and interactions
- Premium Design: Professional e-commerce appearance
- React 18: Latest React features and hooks
- Redux Toolkit: Centralized state management
- React Router: Client-side routing
- Firebase Auth: Secure authentication
- Protected Routes: Authenticated user access
- Mock API: Product data simulation
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository
git clone <repository-url> cd ecommerce
-
Install dependencies
npm install
-
Configure Firebase
- Create a Firebase project at https://console.firebase.google.com
- Enable Authentication and Firestore
- Copy your Firebase config to
src/utils/firebase.js
-
Start the development server
npm start
-
Open your browser Navigate to
http://localhost:3000
src/
├── components/ # Reusable UI components
│ ├── Navbar.jsx # Navigation bar
│ ├── Hero.jsx # Hero section
│ ├── ProductCard.jsx # Product display card
│ ├── CategoryCard.jsx# Category display card
│ ├── ProductList.jsx # Product grid with filtering
│ ├── Footer.jsx # Footer component
│ └── ProtectedRoute.jsx # Route protection
├── pages/ # Page components
│ ├── Home.jsx # Homepage
│ ├── Shop.jsx # Product listing page
│ ├── ProductDetails.jsx # Individual product page
│ ├── Cart.jsx # Shopping cart
│ ├── Checkout.jsx # Checkout process
│ ├── Login.jsx # User login
│ ├── Signup.jsx # User registration
│ └── Profile.jsx # User profile
├── store/ # Redux store and slices
│ ├── store.js # Store configuration
│ ├── authSlice.js # Authentication state
│ ├── cartSlice.js # Shopping cart state
│ └── productsSlice.js# Product filtering state
├── utils/ # Utility functions
│ └── firebase.js # Firebase configuration
├── App.jsx # Main app component
└── index.js # App entry point
npm start- Start development servernpm build- Build for productionnpm test- Run testsnpm eject- Eject from Create React App
- Email/password registration and login
- Social authentication (Google, Microsoft, Apple)
- Protected routes for authenticated users
- User profile management
- Product browsing with search and filters
- Category-based navigation
- Shopping cart with quantity management
- Secure checkout process
- Order history tracking
- Mobile-first approach
- Tablet and desktop optimizations
- Touch-friendly interactions
- Accessible design patterns
-
Create Firebase Project
- Go to Firebase Console
- Create new project
- Enable Authentication and Firestore
-
Configure Authentication
- Enable Email/Password provider
- Enable Google, Microsoft, and Apple providers
- Configure OAuth settings
-
Update Configuration Replace the config in
src/utils/firebase.jswith your Firebase project settings.
npm run buildnpm install -g firebase-tools
firebase login
firebase init hosting
firebase deploy- Frontend: React 18, Redux Toolkit, React Router
- Styling: TailwindCSS, Framer Motion
- Authentication: Firebase Auth
- Database: Firebase Firestore (ready for integration)
- Icons: React Icons (Feather Icons)
- Build Tool: Create React App
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For support and questions, please open an issue in the repository.
Shoe Collection - Premium footwear for every occasion 👟