About this project
ZipinClick is a full-featured digital marketplace platform built with Laravel 12 and PHP 8.2. It enables authors to sell digital products — templates, code files, design assets, and more — while buyers browse, purchase, and download them through a seamless checkout experience.
Authors register on the platform and complete a KYC verification process by submitting government-issued identification documents (NID or Passport). Once verified by an admin, they can upload digital products with multi-file support, preview media (images, videos, audio), screenshots, tags, and pricing with optional discounts. Products enter a moderation queue where admins review and approve, soft-reject, hard-reject, or request resubmission — with email notifications at every stage.
Buyers browse products across hierarchical categories with subcategories, filter by ratings, and view product details with media previews powered by Plyr.js. Shopping cart supports multiple items with duplicate prevention, and checkout is processed through three payment gateways — PayPal, Stripe, and Razorpay — each with their own redirect-based flow and success/cancel callbacks.
After a successful purchase, the system records the order, transaction, author commission, and updates the author's balance. Authors can track their sales and earnings through a dedicated dashboard, then request withdrawals through configurable payout methods (minimum/maximum amounts enforced). Admins review withdrawal requests and approve or reject them with email notifications, with CSV export available for reporting.
The admin panel — built on the Tabler dashboard template with a dark theme — provides comprehensive platform management: role and permission management using Spatie Permission, KYC document review, product moderation, category and subcategory CRUD, payment gateway configuration, commission rate settings, general site settings, and configurable homepage sections including hero banners, featured categories, highlighted products, and monthly picks.
The platform uses a service layer pattern with dedicated classes for order processing, notifications, mail sending, and settings management. Settings are cached from the database and injected into Laravel's config at boot. The entire frontend is server-rendered with Blade templates, Bootstrap 5, TailwindCSS, Alpine.js, and Vite for asset bundling.
