A modern, full-stack e-commerce application for premium footwear. Built with React, TypeScript, Vite, and Supabase, SoleStyle delivers a seamless shopping experience with advanced filtering, user authentication, and cart management.
SoleStyle is a sophisticated footwear marketplace that combines elegant UI design with robust backend infrastructure. The platform offers customers an intuitive browsing experience while providing merchants with comprehensive product management and analytics capabilities.
- User Authentication: Secure registration and login with JWT tokens
- Product Browsing: Browse and filter shoes by category, size, price, and more
- Advanced Search & Filtering: Dynamic sidebar filters for refined product discovery
- Shopping Cart: Persistent cart management with real-time updates
- User Profiles: Personalized customer dashboard
- Responsive Design: Mobile-first approach with Tailwind CSS
- Product Details: Detailed product pages with high-quality images and specifications
- Category Pages: Dedicated pages for Men's, Women's, and other shoe collections
- React 18.3 - UI library
- TypeScript - Type-safe JavaScript
- Vite 5.4 - Lightning-fast build tool
- Tailwind CSS 3.4 - Utility-first CSS framework
- React Router 7.7 - Client-side routing
- Lucide React - Beautiful icon library
- Supabase - PostgreSQL database & authentication
- Express.js - REST API framework
- PostgreSQL - Relational database
- JWT - Secure token-based authentication
- bcryptjs - Password hashing
- ESLint 9.9 - Code linting
- TypeScript ESLint - TypeScript-specific linting
- PostCSS - CSS processing
- Node.js (v16 or higher)
- npm or yarn package manager
- Supabase account for database and authentication
- Git
git clone https://github.com/yourusername/SoleStyle.git
cd SoleStyle-mainnpm installCreate a .env.local file in the root directory with the following variables:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keyRefer to .env.example for the complete list of environment variables.
Start the development server:
npm run devThe application will be available at http://localhost:5173
Create an optimized production build:
npm run buildnpm run previewSoleStyle-main/
βββ src/
β βββ api/ # API integration layer
β β βββ customers.ts
β βββ components/ # Reusable React components
β β βββ FilterSidebar.tsx
β β βββ Footer.tsx
β β βββ Header.tsx
β β βββ ProductCard.tsx
β βββ context/ # React Context for state management
β β βββ AuthContext.tsx
β β βββ CartContext.tsx
β βββ lib/ # Utility functions and configurations
β β βββ db.ts
β β βββ supabase.ts
β βββ pages/ # Page components
β β βββ CartPage.tsx
β β βββ DashboardPage.tsx
β β βββ HomePage.tsx
β β βββ LoginPage.tsx
β β βββ ProductDetailPage.tsx
β β βββ ProductListingPage.tsx
β β βββ RegisterPage.tsx
β β βββ WomenPage.tsx
β βββ types/ # TypeScript type definitions
β β βββ index.ts
β βββ App.tsx # Root component
β βββ main.tsx # Application entry point
β βββ index.css # Global styles
βββ public/ # Static assets
βββ .env.example # Environment variables template
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ postcss.config.js # PostCSS configuration
βββ eslint.config.js # ESLint configuration
The backend provides the following RESTful API endpoints:
POST /auth/register- Register a new userPOST /auth/login- Login userPOST /auth/logout- Logout user
GET /api/products- Get all productsGET /api/products/:id- Get product detailsGET /api/products/category/:category- Get products by category
GET /api/cart- Get user cartPOST /api/cart/items- Add item to cartPUT /api/cart/items/:id- Update cart itemDELETE /api/cart/items/:id- Remove item from cart
GET /api/user/profile- Get user profilePUT /api/user/profile- Update user profile
- Password Hashing: All passwords are securely hashed using bcryptjs
- JWT Authentication: Secure token-based authentication for API endpoints
- Environment Variables: Sensitive credentials stored in environment variables
- CORS Protection: Cross-origin resource sharing configured securely
- Input Validation: Server-side validation for all API requests
This project uses Tailwind CSS for rapid UI development. Key styling files:
tailwind.config.js- Tailwind configuration and custom themepostcss.config.js- PostCSS processing pipelinesrc/index.css- Global styles and Tailwind directives
Run ESLint to check code quality:
npm run lintFix linting issues automatically:
npm run lint -- --fix| Script | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes: Commit your work with clear, descriptive messages
- Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request: Describe your changes in detail
- Follow the existing code style and conventions
- Ensure all tests pass and linting checks pass
- Write meaningful commit messages
- Update documentation as needed
- Add comments for complex logic
Use clear and descriptive commit messages:
[FEATURE] Add product filtering functionality
[FIX] Resolve cart calculation bug
[REFACTOR] Improve component structure
[DOCS] Update installation instructions
Found a bug or have a feature idea?
- Issues: Open an Issue
- Discussions: Start a Discussion
Please provide:
- Clear description of the issue
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Screenshots/recordings (if applicable)
This project is licensed under the MIT License - see the LICENSE file for details.
- Email: support@solestyle.com
- Twitter: @SoleStyle
- Documentation: Wiki
- Payment gateway integration (Stripe/PayPal)
- Order tracking and history
- Product reviews and ratings
- Wishlist functionality
- Admin dashboard
- Email notifications
- Mobile app (React Native)
- Analytics and reporting
Made with β€οΈ by the SoleStyle Team
Last Updated: February 2026