A responsive core PHP e-commerce platform specializing in footwear products with multiple categories and brands
Features • Tech Stack • Installation • Project Structure • Usage • Contributing • Contact
- Overview
- Features
- Tech Stack
- Requirements
- Installation
- Project Structure
- Key Modules
- Database Setup
- Configuration
- Usage Guide
- API Endpoints
- Contributing
- License
- Contact
Shoeholic is a fully functional e-commerce web application built with Core PHP designed specifically for selling footwear products online. The platform features a complete shopping experience with product browsing, cart management, checkout, user authentication, and an administrative dashboard for managing products, orders, users, and categories.
- Responsive Design: Mobile-friendly interface that works seamlessly across all devices
- Secure Authentication: User registration, login, and password management with OTP verification
- Complete E-commerce Workflow: From product discovery to order confirmation
- Admin Dashboard: Comprehensive management system for administrators
- Multiple Payment Support: Ready for payment gateway integration
- Product Management: Categories, subcategories, brands, and detailed product listings
- Order Tracking: Users can view their order history and status
-
User Authentication
- Registration with email validation
- Secure login/logout functionality
- Password reset with OTP verification
- Account profile management
-
Shopping Experience
- Browse products by category and brand
- Advanced product filtering and search
- Product comparison feature
- Wishlist/Favorites management
- Shopping cart with add/remove functionality
- Checkout process
-
Order Management
- Place orders
- View order history
- Track order status
- Order details view
-
User Account
- Edit profile information
- Manage addresses
- View order history
- Wishlist management
-
Contact & Feedback
- Contact us form
- Customer feedback system
- Multiple support pages
-
Dashboard & Reports
- Admin dashboard overview
- Order reports with acceptance/rejection
- User activity reports
- Sales analytics
-
Product Management
- Add/edit/delete products
- Manage product images
- Manage categories and subcategories
- Manage brands
-
Order Management
- View all orders
- Accept/reject orders
- View detailed order information
- Generate order reports
-
User Management
- View registered users
- User reports
- Manage user accounts
-
Content Management
- Upload product gallery images
- Manage website content
- PHP 7.0+ - Server-side scripting language
- MySQL 5.7+ - Database management system
- Core PHP - No frameworks (pure PHP)
- HTML5 - Markup structure
- CSS3 - Styling and responsive design
- JavaScript & jQuery - Client-side interactivity
- Bootstrap - Responsive UI framework (implied from structure)
- PHPMailer - Email sending functionality
- jQuery - JavaScript library for DOM manipulation
- SQL Database - shoeholic.sql / shoe_holic.sql
Before you begin, ensure you have the following installed:
- PHP 7.0 or higher
- MySQL Server 5.7 or higher
- Apache Web Server 2.4+
- Browser: Modern web browser (Chrome, Firefox, Safari, Edge)
- Text Editor/IDE: VS Code, PHPStorm, or Sublime Text
- Git (optional, for version control)
git clone https://github.com/nirav-gajera/online-footwear-product-buying-php.git
cd online-footwear-product-buying-php- Copy the project folder to your web server root:
- Apache (XAMPP/WAMP): Copy to
htdocs/orwww/ - Access URL:
http://localhost/online-footwear-product-buying-php/
- Apache (XAMPP/WAMP): Copy to
- Open phpMyAdmin (typically at
http://localhost/phpmyadmin) - Create a new database named
shoeholic - Go to the Import tab
- Select and import the database file:
- Either
shoeholic/shoeholic.sqlorshoeholic/shoe_holic.sql
- Either
- Click Import
Update the database credentials in the configuration files:
File: shoeholic/config/conn.php or shoeholic/config/connection.php
<?php
$host = 'localhost';
$dbname = 'shoeholic';
$user = 'root';
$password = '';
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection Error: " . $e->getMessage();
}
?>chmod 755 shoeholic/Images/
chmod 755 shoeholic/Client1/Images/
chmod 755 shoeholic/admin/Images/- Client Side:
http://localhost/online-footwear-product-buying-php/shoeholic/Client1/index.php - Admin Panel:
http://localhost/online-footwear-product-buying-php/shoeholic/admin/login.php
online-footwear-product-buying-php/
│
├── shoeholic/ # Main application folder
│ ├── config/ # Configuration files
│ │ ├── conn.php # Database connection
│ │ └── connection.php # Alternative connection file
│ │
│ ├── Client1/ # Client-side (User Interface)
│ │ ├── index.php # Home page
│ │ ├── login.php # User login
│ │ ├── register.php # User registration
│ │ ├── shop.php # Product listing
│ │ ├── product details.php # Product detail page
│ │ ├── cart.php # Shopping cart
│ │ ├── checkout.php # Checkout process
│ │ ├── account.php # User account
│ │ ├── myorder.php # User orders
│ │ ├── wishlist.html # Wishlist page
│ │ ├── contactus.php # Contact form
│ │ ├── feedback.php # Feedback form
│ │ ├── aboutus.php # About page
│ │ ├── forgot_password.php # Forgot password
│ │ ├── resetpassword.php # Password reset
│ │ ├── header.php # Header component
│ │ ├── footer.php # Footer component
│ │ ├── logout.php # Logout functionality
│ │ ├── Images/ # Product images
│ │ ├── assets/ # CSS, JS, fonts
│ │ ├── lib/ # Third-party libraries
│ │ └── PHPMailer/ # Email library
│ │
│ ├── admin/ # Admin Panel
│ │ ├── index.php # Admin dashboard
│ │ ├── login.php # Admin login
│ │ ├── logout.php # Admin logout
│ │ ├── connection.php # Database connection
│ │ │
│ │ ├── Area.php # Delivery area management
│ │ ├── areainsert.php # Add area
│ │ ├── areadelete.php # Delete area
│ │ ├── areaupdate.php # Update area
│ │ │
│ │ ├── brand.php # Brand management
│ │ ├── brandinsert.php # Add brand
│ │ ├── branddelete.php # Delete brand
│ │ ├── brandupdate.php # Update brand
│ │ │
│ │ ├── category.php # Category management
│ │ ├── categoryinsert.php # Add category
│ │ ├── categorydelete.php # Delete category
│ │ ├── categoryupdate.php # Update category
│ │ │
│ │ ├── sub-category.php # Subcategory management
│ │ ├── sub-categoryinsert.php # Add subcategory
│ │ ├── sub-categorydelete.php # Delete subcategory
│ │ ├── sub-categoryupdate.php # Update subcategory
│ │ │
│ │ ├── product.php # Product management
│ │ ├── productinsert.php # Add product
│ │ ├── productdelete.php # Delete product
│ │ ├── productupdate.php # Update product
│ │ │
│ │ ├── gallery.php # Gallery management
│ │ ├── galleryinsert.php # Add gallery images
│ │ ├── gallerydelete.php # Delete gallery images
│ │ ├── galleryupdate.php # Update gallery images
│ │ │
│ │ ├── order.php # Order management
│ │ ├── order detail.php # Order details
│ │ ├── order_accept.php # Accept order
│ │ ├── order_reject.php # Reject order
│ │ │
│ │ ├── user.php # User management
│ │ ├── User1.php # User details
│ │ │
│ │ ├── contact.php # Contact inquiries
│ │ ├── feedback.php # User feedback
│ │ │
│ │ ├── Reports/ # Report generation
│ │ │ ├── orderreport.php # Order reports
│ │ │ └── userreport.php # User reports
│ │ │
│ │ ├── upload.php # File upload handling
│ │ ├── profile.php # Admin profile
│ │ ├── resetpassword.php # Password reset
│ │ ├── header.php # Admin header
│ │ ├── footer.php # Admin footer
│ │ ├── Images/ # Admin images and brand logos
│ │ ├── assets/ # Admin CSS, JS
│ │ ├── lib/ # Libraries
│ │ └── PHPMailer/ # Email library
│ │
│ ├── Images/ # Shared images folder
│ ├── shoeholic.sql # Database backup file
│ └── shoe_holic.sql # Alternative database backup
│
└── README.md # This file
- User registration and email verification
- Secure login system
- Forgot password with OTP
- Session management
- Admin authentication
- Product catalog with categories and subcategories
- Brand management
- Product details and specifications
- Image gallery for products
- Inventory management
- Add/remove items from cart
- Update quantity
- Calculate totals and tax
- Checkout with delivery address
- Order confirmation
- Order placement and tracking
- Order history for users
- Admin order acceptance/rejection
- Order details view
- Order status tracking
- Profile update
- Address management
- Order history
- Wishlist/Favorites
- Account settings
- Product CRUD operations
- Category/Subcategory management
- Brand management
- Delivery area management
- User management
- Order management and reporting
- Gallery management
- Contact form submission
- Customer feedback system
- Email notifications (via PHPMailer)
Two database backup files are available:
shoeholic/shoeholic.sqlshoeholic/shoe_holic.sql
The database includes the following main tables:
users- User accounts and profilesproducts- Product informationcategories- Product categoriessubcategories- Product subcategoriesbrands- Brand informationorders- Order recordsorderdetails- Order line itemscart- Shopping cart itemswishlist- User wishlist itemsfeedback- Customer feedbackcontact- Contact inquiriesadmin- Administrator accountsgallery- Product gallery imagesarea- Delivery areas
-- Import using MySQL command line
mysql -u root -p shoeholic < shoeholic/shoeholic.sql
-- Or use phpMyAdmin GUIEdit the connection files to match your environment:
Path: shoeholic/config/conn.php
$host = 'localhost';
$dbname = 'shoeholic';
$user = 'root';
$password = '';For PHPMailer setup, configure SMTP settings in relevant email sending files:
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = 'your-email@gmail.com';
$mail->Password = 'your-password';Ensure the following directories have proper write permissions:
shoeholic/Images/shoeholic/Client1/Images/shoeholic/admin/Images/
- Visit the homepage
- Navigate to Shop section
- Filter by category, brand, or price
- View detailed product information
- Click on "Register" or "Sign Up"
- Fill in the registration form
- Verify email address
- Set password
- Click "Login"
- Enter email and password
- Access your account dashboard
- Click "Add to Cart" on products
- View cart items
- Update quantities
- Proceed to checkout
- Review cart items
- Enter delivery address
- Select payment method
- Confirm order
- View profile information
- Update account details
- View order history
- Manage wishlist
- Use "Contact Us" form for inquiries
- Submit feedback and suggestions
- View FAQ and About Us
- Navigate to
/shoeholic/admin/login.php - Enter admin credentials
- Access admin dashboard
- Go to Products section
- Add new products
- Edit existing products
- Delete products
- Upload product images
- Create categories
- Create subcategories
- Edit categories
- Delete categories
- Add new brands
- Upload brand logos
- Update brand information
- Delete brands
- View all orders
- Accept or reject orders
- View order details
- Generate reports
- View registered users
- View user details
- Generate user reports
- View user activity
- Order reports
- User reports
- Sales analytics
- Generate custom reports
POST /shoeholic/Client1/login.php- User loginPOST /shoeholic/Client1/register.php- User registrationPOST /shoeholic/Client1/forgot_password.php- Forgot passwordGET /shoeholic/Client1/logout.php- User logout
GET /shoeholic/Client1/shop.php- Get all productsGET /shoeholic/Client1/products.php- Get filtered productsGET /shoeholic/Client1/product%20details.php?id=X- Get product details
POST /shoeholic/Client1/cart%20insert.php- Add to cartGET /shoeholic/Client1/cart.php- View cartPOST /shoeholic/Client1/cartdelete.php- Remove from cart
POST /shoeholic/Client1/checkout.php- Create orderGET /shoeholic/Client1/myorder.php- View user orders
GET /shoeholic/Client1/account.php- View accountPOST /shoeholic/Client1/account.php- Update account
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a 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
- Bug fixes and improvements
- Feature enhancements
- Code optimization
- Documentation improvements
- Localization/Translation
- UI/UX improvements
- Security enhancements
- Follow PSR-12 PHP coding standards
- Write clear, readable code
- Add comments for complex logic
- Test your changes before submitting
- Write meaningful commit messages
This project is open source and available under the MIT License.
- Instagram: @mr._nirav_09
- GitHub: @nirav-gajera
- Email: Contact via GitHub
Please visit Instagram profile for complete project documentation and support.
- Report issues on GitHub Issues
- Provide detailed description and screenshots
- Include steps to reproduce the bug
- Mobile application (iOS/Android)
- Payment gateway integration (Stripe, PayPal)
- Advanced analytics dashboard
- Email notifications enhancement
- API versioning
- Coupon and discount system
- Review and rating system
- Inventory management
- Multi-language support
- Dark mode theme
If you find this project helpful, please consider giving it a ⭐ on GitHub!