This commit is contained in:
2026-02-03 15:31:29 +05:00
commit 326c677e8d
2800 changed files with 1489388 additions and 0 deletions

81
structure.md Normal file
View File

@@ -0,0 +1,81 @@
# Project Structure Analysis
## Overview
This project is a multi-channel e-commerce backend platform built with Laravel 10. It features a comprehensive admin panel using Laravel Nova, a robust API for frontend consumption, and modular components for key functionality.
## Key Technologies
- **Framework:** Laravel 10.x
- **Admin Panel:** Laravel Nova
- **API Documentation:** Dedoc Scramble
- **Authentication:** Laravel Sanctum
- **Media Management:** Spatie Media Library
- **Permissions:** Spatie Laravel Permission
- **Localization:** Spatie Laravel Translatable
## Directory Structure
### Core Application (`app/`)
The application logic is organized by domain and function.
#### Models (`app/Models/`)
Entities are grouped by domain:
- **Ecommerce/**: Core e-commerce entities.
- `Product/`: Product, Brand, Category, Collection, Review, Inventory.
- `Order/`: Order management, payments, shipping, status.
- `Channel/`: Multi-channel support logic.
- `Payouts/`: Vendor payout management.
- **CMS/**: Content management entities.
- `Marketing/`: Newsletter, subscriptions.
- `Media/`: Banners, carousels, galleries.
- **System/**: System-wide configurations.
- `Settings/`: Currency, Location (Province, Region), Payments.
- `Roles/`: RBAC (Roles and Permissions).
- `VersionManagement/`: App version tracking.
- **Post/**: Specific business logic (e.g., `PostBranch`).
- **Auth/**: Authentication related models (e.g., `Verification`).
#### Modules (`app/Modules/`)
Contains standalone modules for encapsulated functionality:
- **GlobalOrder/**: Handling global order logic (Controllers, Models, Migrations, Nova Resources).
#### Http (`app/Http/`)
- **Controllers/Api/V1/**: API endpoints for the frontend/mobile app.
- Organized by resource (Product, Order, Auth, Cart, etc.).
- **Controllers/Api/V1/Vendor/**: Dedicated endpoints for vendor operations.
#### Helpers (`app/Helpers/`)
- **Ecommerce/**: Domain-specific helper logic.
- `Product/Filter/`: Product filtering logic.
- `Product/Sort/`: Product sorting logic.
#### Repositories (`app/Repositories/`)
- Implements the Repository pattern to abstract data access layers.
#### Nova (`app/Nova/`)
- Configuration for Laravel Nova resources, defining the admin interface.
### Routes (`routes/`)
- `api/v1/v1-api.php`: Main public API routes (Customer facing).
- `api/v1/vendor/vendor-api.php`: Vendor specific API routes.
- `web.php`: Web routes (likely for admin panel access or fallbacks).
### Custom Components (`nova-components/`)
Custom-built Vue.js components for Laravel Nova:
- `DynamicFields`: Handling dynamic field sets.
- `InlineRelationship`: Managing related models inline.
- `InventoryHistoryItems`: Visualizing inventory changes.
- `PayoutProducts`: Managing product payouts.
- `ProductInventory`: Inventory management interface.
### Config (`config/`)
- Standard Laravel configuration files plus package-specific configs (`scramble.php`, `nova.php`, etc.).
## Database
- **Migrations:** Standard Laravel migrations.
- **Seeds:** Database seeders for initial data population.
## Architecture Patterns
- **Repository Pattern:** Used for data access abstraction.
- **Modular Monolith:** Emerging structure with `app/Modules`.
- **Domain-Driven Design (Lite):** logical grouping of models and helpers by domain (Ecommerce, CMS, System).
- **Service Providers:** heavily used for package integration and registering services (`app/Providers`).