A modern, responsive e-commerce web application built with React 19, featuring a comprehensive public-facing site with authentication, product catalog, shopping cart, and more.
- Frontend Repository: ahad1033/TechStore
- Backend Repository: ahad1033/TechStore-Server
- Live Demo: tech-store-mu-ashen.vercel.app
- Authentication System: Login and signup pages with form validation
- Responsive Navigation: Sticky navbar with mega menu, search bar, and mobile hamburger menu
- Landing Page: 10+ sections including hero, categories, featured products, testimonials, and newsletter
- Product Catalog: Grid layout with filters, search, pagination, and view mode toggle
- Product Details: Image gallery, product information, reviews, and add to cart functionality
- Shopping Cart: Cart management with quantity updates, item removal, and checkout
- Contact Page: Contact form with validation and company information
- React 19 with Vite for fast development and building
- React Router DOM v7+ for client-side routing
- Tailwind CSS with centralized theme configuration
- ShadCN UI components for consistent design
- Redux Toolkit for state management
- React Hook Form + Yup for form validation
- Responsive Design with mobile-first approach
- Modern JavaScript (ES6+) features
- Frontend Framework: React 19
- Build Tool: Vite
- Routing: React Router DOM v7+
- Styling: Tailwind CSS v4
- UI Components: ShadCN UI
- State Management: Redux Toolkit + React Redux
- Form Handling: React Hook Form + Yup
- Icons: Lucide React
- Development: ESLint, Hot Module Replacement
src/
โโโ components/
โ โโโ dashboard/ # Admin dashboard components
โ โโโ guard/ # Route protection components
โ โโโ layouts/ # Layout components
โ โโโ sections/ # Home page sections
โ โโโ shared/ # Shared components
โ โโโ ui/ # ShadCN UI components
โโโ pages/ # Page components
โโโ routes/ # Route configuration
โโโ store/ # Redux store
โโโ data/ # Mock data
โโโ lib/ # Utility functions
โโโ hooks/ # Custom React hooks
โโโ assets/ # Static assets
โโโ App.jsx # Main app component
โโโ main.jsx # Entry point
โโโ index.css # Global styles
Create a .env file in the project root. Example:
# Backend API URLs
VITE_API_BASE_URL=https://tech-store-server.onrender.com/api/v1
VITE_API_REFRESH_URL=https://tech-store-server.onrender.com/api/v1/refresh-token
# ImgBB (Image Upload) API
VITE_IMGBB_API_KEY=your_imgbb_api_key_here
VITE_IMGBB_UPLOAD_URL=https://api.imgbb.com/1/uploadNote:
- For local development, you can use
http://localhost:5000/api/v1forVITE_API_BASE_URLandhttp://localhost:5000/api/v1/refresh-tokenforVITE_API_REFRESH_URL.- Never commit your real API keys to version control.
- Node.js 18+
- npm or yarn
- Clone the repository
git clone https://github.com/ahad1033/TechStore.git cd TechStore - Install dependencies
npm install
- Configure environment variables
- Copy
.env.exampleto.envand fill in your values (create.env.exampleif not present).
- Copy
- Start the development server
npm run dev
- Open your browser
- Navigate to
http://localhost:5173
- Navigate to
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
/- Home page with landing sections/products- Product catalog with filters/products/:id- Product detail page/cart- Shopping cart/contact- Contact page/login- User login/signup- User registration
/dashboard- Admin dashboard/dashboard/products- Product management/dashboard/orders- Order management/dashboard/users- User management
- Theme: Tailwind CSS with centralized configuration in
src/index.css - Components: ShadCN UI for consistent, accessible UI
- Typography: Inter font family
- Color Scheme: Blue-based, modern, accessible
- Add Products: Edit
src/data/mockData.jsand add to theproductsarray - Modify Categories: Update the
categoriesarray insrc/data/mockData.js - Styling: Change theme variables in
src/index.cssor use Tailwind classes
npm run build- Install Vercel CLI:
npm i -g vercel - Run:
vercel - Follow the prompts
- Build the project:
npm run build - Upload the
distfolder to Netlify - Configure build settings if needed
- Responsive design on all screen sizes
- Navigation functionality
- Product filtering and search
- Cart operations (add, remove, update)
- Form validation
- Authentication flows
- Cross-browser compatibility
- Unit tests with Jest
- Component tests with React Testing Library
- E2E tests with Playwright or Cypress
- Admin Dashboard: Product, order, and user management
- User Dashboard: Order history, profile, wishlist
- Payment Integration: Stripe, PayPal
- Real-time Features: Live chat, stock notifications
- Advanced Search: Elasticsearch
- PWA Features: Offline support, push notifications
- Multi-language Support: Internationalization
- Dark Mode: Theme switching
- Performance: Code splitting, lazy loading
- SEO: Meta tags, structured data
- Accessibility: ARIA labels, keyboard navigation
- Security: Input sanitization, CSRF protection
- Analytics: Google Analytics, user behavior tracking
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes:
git commit -m 'Add feature' - Push to branch:
git push origin feature-name - Submit a pull request
- Use consistent formatting with Prettier
- Follow ESLint rules
- Write meaningful commit messages
- Add comments for complex logic
This project is licensed under the MIT License - see the LICENSE file for details.
- ShadCN UI for the component library
- Tailwind CSS for the utility-first CSS framework
- Vite for the fast build tool
- React Team for the amazing framework
- Unsplash for the placeholder images
- Create an issue in the repository
- Contact: support@techstore.com
- Documentation: Wiki
TechStore - Your one-stop destination for the latest technology products.