lms/PROJECT_STRUCTURE.md
2025-12-15 12:26:23 +01:00

146 lines
6.0 KiB
Markdown

# Mentor LMS - Project Structure
This document provides a detailed overview of the Mentor LMS project structure, organized by directories and their purposes.
## Root Directory Structure
```
mentor-lms/
├── .github/ # GitHub workflows and configurations
├── Modules/ # Laravel modules (Blog, Exam, Installer, PaymentGateways, Updater)
├── app/ # Main Laravel application code
├── bootstrap/ # Laravel bootstrap files
├── config/ # Laravel configuration files
├── database/ # Database migrations, seeders, and factories
├── docker/ # Docker configuration files
├── lang/ # Laravel language files
├── public/ # Publicly accessible files (entry point)
├── resources/ # Views, frontend assets, and resources
├── routes/ # Laravel route definitions
├── storage/ # Laravel storage directory
├── tests/ # Test files
├── vendor/ # Composer dependencies
├── .env # Environment configuration
├── .env.example # Example environment configuration
├── .gitignore # Git ignore rules
├── artisan # Laravel CLI tool
├── composer.json # PHP dependencies
├── package.json # Node.js dependencies
├── README.md # Main project documentation
├── vite.config.ts # Vite configuration for frontend
└── ... # Other configuration files
```
## Core Directories
### `app/` - Main Application Code
```
app/
├── Enums/ # PHP enumerations for various types
├── Helpers/ # Helper functions
├── Http/
│ ├── Controllers/ # Laravel controllers
│ ├── Middleware/ # HTTP middleware
│ └── Requests/ # Form request validation
├── Mail/ # Mailable classes
├── Models/ # Eloquent models
├── Notifications/ # Notification classes
├── Providers/ # Service providers
└── Services/ # Custom services and business logic
```
### `resources/` - Frontend and Views
```
resources/
├── css/ # CSS stylesheets
├── js/ # JavaScript/TypeScript code
│ ├── app.tsx # Main application entry point
│ ├── components/ # Reusable React components
│ ├── data/ # Static data files
│ ├── hooks/ # Custom React hooks
│ ├── icons/ # Icon components
│ ├── layouts/ # Page layouts
│ ├── lib/ # Utility libraries
│ ├── pages/ # Page components organized by section
│ │ ├── auth/ # Authentication pages
│ │ ├── blogs/ # Blog pages
│ │ ├── cart/ # Shopping cart pages
│ │ ├── course-player/ # Course player components
│ │ ├── courses/ # Course listing and details
│ │ ├── dashboard/ # Admin/instructor dashboard
│ │ ├── inner/ # Inner pages
│ │ ├── installer/ # Installation wizard
│ │ ├── instructors/ # Instructor profiles
│ │ ├── intro/ # Homepage and landing pages
│ │ ├── job-circulars/ # Job listings
│ │ ├── notification/ # Notification system
│ │ └── student/ # Student dashboard
│ ├── ssr.tsx # Server-side rendering entry
│ └── types/ # TypeScript type definitions
└── views/ # Laravel Blade templates
```
### `Modules/` - Laravel Modules
```
Modules/
├── Blog/ # Blog module
├── Installer/ # Installation module
├── PaymentGateways/ # Payment gateway integrations
└── Updater/ # System update functionality
```
### `routes/` - Route Definitions
```
routes/
├── admin.php # Admin-specific routes
├── auth.php # Authentication routes
├── instructor.php # Instructor-specific routes
├── payout.php # Payout system routes
├── student.php # Student-specific routes
├── web.php # Main web routes
└── console.php # Console/Artisan command routes
```
### `database/` - Database Management
```
database/
├── migrations/ # Database migration files
├── seeders/ # Database seeders
└── factories/ # Model factories for testing
```
### `lang/` and `storage/app/lang/` - Language Files
```
lang/
└── en/ # English language files
├── auth.php # Authentication messages
├── button.php # Button text translations
├── common.php # Common terms
├── dashboard.php # Dashboard-specific translations
├── frontend.php # Frontend translations
├── input.php # Input placeholders and labels
├── settings.php # Settings page translations
└── ...
storage/app/lang/
├── default/ # Default language files
└── groups/ # Group-specific language files
```
### `public/` - Public Assets
```
public/
├── assets/ # Compiled assets
├── build/ # Vite build output
├── script/ # JavaScript scripts
├── index.php # Laravel entry point
└── ... # Images, favicons, etc.
```