A complete, production-ready e-commerce platform built with Laravel 11, designed for Ukrainian market with modern UI and full shopping functionality.
- Product Catalog: Advanced filtering by category, price, brand, rating
- Product Details: Full product pages with specifications, reviews, related products
- Shopping Cart: Add/remove items, quantity management, persistent cart
- Checkout Process: Multi-step checkout with address selection and payment options
- Order Management: Order history, tracking, status updates
- Authentication: Login/register with validation
- User Profiles: Profile management, address book
- Wishlist: Save favorite products
- Reviews & Ratings: Product reviews with star ratings
- Multiple Payment Methods: Card (Stripe), LiqPay, Bank Transfer, Cash on Delivery
- Shipping Options: Nova Poshta, Meest Express, Pickup
- Ukrainian Localization: β΄ currency, Ukrainian text, local payment methods
- Responsive Design: Mobile-first approach with Tailwind CSS
- Ukrainian Interface: All text in Ukrainian language
- Fast Loading: Optimized assets with Vite
- Accessibility: WCAG compliant components
- PHP 8.4+
- Composer
- Node.js 20+
- SQLite (included)
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/spark-ecommerce.git cd spark-ecommerce -
Install PHP dependencies
composer install
-
Install Node dependencies
npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
php artisan migrate php artisan db:seed
-
Build assets
npm run build # or for development npm run dev -
Start the server
php artisan serve
Visit http://localhost:8000 to see your store!
spark-ecommerce/
βββ app/
β βββ Http/Controllers/ # All controllers
β βββ Models/ # Eloquent models
β βββ Providers/ # Service providers
βββ database/
β βββ migrations/ # Database migrations
β βββ seeders/ # Database seeders
βββ resources/
β βββ views/ # Blade templates
β β βββ auth/ # Login/register pages
β β βββ components/ # Reusable components
β β βββ layouts/ # Master layouts
β β βββ pages/ # Page templates
β βββ css/ # Stylesheets
β βββ js/ # JavaScript files
βββ routes/
β βββ web.php # Web routes
βββ public/ # Public assets
The application uses 10 main tables:
users- User accountscategories- Product categoriesproducts- Product catalogcart_items- Shopping cart itemsorders- Customer ordersorder_items- Order line itemsaddresses- Delivery addressespayments- Payment recordsreviews- Product reviewswishlists- User wishlists
- ProductController: Catalog browsing, product details
- CartController: Shopping cart management
- OrderController: Order processing and checkout
- AuthController: User authentication
- ReviewController: Product reviews
- Header: Navigation, search, cart, user menu
- Footer: Links, contact info, payment methods
- Product Card: Reusable product display component
- Checkout Form: Multi-step order form
- Backend: Laravel 11, PHP 8.4
- Frontend: Blade templates, Tailwind CSS, Alpine.js
- Database: SQLite (development), MySQL/PostgreSQL (production)
- Build Tools: Vite, npm
- Authentication: Laravel Sanctum compatible
- Validation: Laravel built-in validation
- Ukrainian language interface
- β΄ (UAH) currency display
- Local payment methods (LiqPay, Privat24)
- Ukrainian shipping providers (Nova Poshta, Meest)
- Local business requirements compliance
The application comes with sample data:
- 8 product categories (Smartphones, Laptops, etc.)
- 25 sample products with realistic pricing
- Test user account for development
-
Install Vercel CLI
npm install -g vercel
-
Deploy to Vercel
vercel --prod
-
Configure Environment Variables in Vercel Dashboard
- Go to your project in Vercel dashboard
- Navigate to Settings β Environment Variables
- Add the following variables:
APP_NAME=Spark APP_ENV=production APP_KEY=your-generated-app-key APP_DEBUG=false APP_URL=https://your-vercel-app.vercel.app DB_CONNECTION=sqlite
-
Database Setup
- For SQLite: Database will be created automatically
- For PostgreSQL: Use Vercel Postgres or external provider
-
Generate Application Key
php artisan key:generate
If you prefer Railway for better Laravel support:
-
Connect to Railway
railway login railway link
-
Deploy
railway up
For traditional web hosting:
- Set up web server (Apache/Nginx)
- Configure database (MySQL/PostgreSQL)
- Set up SSL certificate
- Configure payment gateways
- Set up email service
- Run migrations and seeders
APP_NAME="Spark E-commerce"
APP_ENV=production
APP_KEY=your-app-key
APP_DEBUG=false
APP_URL=https://yourdomain.com
# Database (SQLite for Vercel, MySQL/PostgreSQL for others)
DB_CONNECTION=sqlite
# or
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=spark
DB_USERNAME=your-db-user
DB_PASSWORD=your-db-password
# Payment gateways
STRIPE_KEY=your-stripe-key
STRIPE_SECRET=your-stripe-secret
LQPAY_PUBLIC_KEY=your-liqpay-key
LQPAY_PRIVATE_KEY=your-liqpay-secret- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open-sourced software licensed under the MIT license.
- Built with Laravel framework
- Styled with Tailwind CSS
- Icons and UI inspiration from Ukrainian e-commerce sites
Made with β€οΈ for Ukrainian developers and entrepreneurs
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.
The Laravel framework is open-sourced software licensed under the MIT license.