This repository is a sample Laravel project demonstrating my ability to build web applications. It includes a variety of Laravel features, design patterns, and tools commonly used in real-world systems. This is a Laravel-based e-commerce web application built to simulate a real-world online shopping experience. The project includes a full-featured customer-facing storefront and a secure admin panel for managing products, categories, orders, discounts and users.
- Product listing with pagination
- Product detail pages
- Shopping cart and checkout system
- User registration and login
- Order history and tracking
- Automatic email includes order summary and delivery details
- Admin authentication
- CRUD management for:Products, Categories, Orders, Users
- Role-based access control
- File uploads for product images
- Repository Pattern – for abstraction and clean data access.
- Builder Pattern – for composing complex queries and filters.
- Custom Request Validation – using
FormRequestclasses to handle input validation. - Custom Validation Rules – reusable and domain-specific validation logic.
- Validation Exception Handling – clean and consistent error responses.
- REST API Response Handling – unified API response format (success/error/data).
- Model Observers – for separating side effects from model logic.
- Accessors & Mutators – for transforming model attributes.
- Custom Middleware – for handling the user role.
- Filament Admin Panel – used to build the admin dashboard.
- Yajra DataTables – for server-side tables and search.
- Filament Spatie Media Library Plugin – media file management inside Filament.
- Spatie Laravel Media Library – for attaching and managing files on models.
- Spatie Laravel Permission – roles and permissions management system.
- RealRashid SweetAlert – beautiful alert modals and toast notifications.
- Typhoon Iran Cities – structured data for all Iranian cities and provinces.
- Components – reusable Blade components for cleaner views.
- Facades – custom or Laravel-provided for clean service access.
- Custom Artisan Commands – e.g., project setup scripts.
- Email Sending – using Mailable classes for notifications.
- Seeders & Factories – for generating test and demo data.
- Events & Listeners – decoupling logic with event-driven architecture.
- Jobs (Queued) – handling async tasks like emails or background processing.
The project includes a RESTful API built with:
- Authentication using
Laravel Sanctum - JSON responses with proper status codes
The admin panel is built with Filament, supporting:
- Dynamic access control
- Custom login logic
- Role-based panel access
- PHP >= 8.2
- Laravel 12
- Composer
- MySQL
git clone https://github.com/masoumeh9977/online-store.git
cd your-sample-project
composer install
cp .env.example .env
php artisan key:generate
**To set up the admin panel**
php artisan filament:install
php artisan app:setup
php artisan serve