File: /mnt/data/smarthr-co-in/demo/laravel/README.md
# SmartHR - Laravel Application
A comprehensive Human Resource Management System built with Laravel framework, featuring modern UI components and extensive functionality.
## 📁 Project Structure
### Template Directory (`template/`)
The main Laravel application containing the complete HR management system:
#### App Structure (`template/app/`)
```
template/app/
├── Http/
│ └── Controllers/
│ ├── Controller.php # Base controller class
│ └── CustomAuthController.php # Custom authentication controller
├── Models/
│ └── User.php # User model for authentication
└── Providers/
└── AppServiceProvider.php # Main service provider
```
#### Configuration (`template/config/`)
```
template/config/
├── app.php # Main application configuration
├── auth.php # Authentication and authorization settings
├── cache.php # Cache driver configuration
├── database.php # Database connection settings
├── filesystems.php # File storage configuration
├── logging.php # Logging configuration
├── mail.php # Mail service configuration
├── queue.php # Queue configuration
├── session.php # Session configuration
└── services.php # Third-party service configurations
```
#### Database (`template/database/`)
```
template/database/
├── factories/
│ └── UserFactory.php # User model factory for testing
├── migrations/
│ ├── 0001_01_01_000000_create_users_table.php # Users table migration
│ ├── 0001_01_01_000001_create_cache_table.php # Cache table migration
│ └── 0001_01_01_000002_create_jobs_table.php # Jobs table migration
└── seeders/
└── DatabaseSeeder.php # Main database seeder
```
#### Public Assets (`template/public/`)
```
template/public/
├── build/ # Compiled and built assets from resources/
│ ├── css/
│ ├── js/
│ ├── fonts/
│ ├── img/
│ ├── plugins/
│ ├── scss/
│ └── .vite/ # Vite build artifacts
│ └── manifest.json # Asset manifest file
├── favicon.ico # Website favicon (in built)
├── index.php # Laravel application entry point
├── robots.txt # Search engine crawling directives
└── .htaccess # Apache configuration
```
#### Resources (`template/resources/`)
```
template/resources/
├── css/ # Compiled CSS stylesheets
├── fonts/ # Custom font files
├── img/ # Application images and media
├── js/ # JavaScript files and libraries
├── plugins/ # Third-party plugin integrations
├── scss/ # SCSS source files for styling
└── views/ # Blade template files for UI rendering
├── components/ # Reusable UI components
│ ├── breadcrumb.blade.php # Breadcrumb navigation component
│ └── modal-popup.blade.php # Modal popup component
├── layout/
│ ├── mainlayout.blade.php # Main application layout
│ └── partials/ # Layout partial components
│ ├── footer-scripts.blade.php # JavaScript includes
│ ├── head.blade.php # CSS includes
│ ├── header.blade.php # Application header
│ └── sidebar.blade.php # Navigation sidebar
├── activity.blade.php
├── add-invoices.blade.php
├── index.blade.php # home page
└── ... # All other page files
```
#### Routes (`template/routes/`)
```
template/routes/
├── console.php # Console command routes
└── web.php # Web application routes
```
#### Bootstrap (`template/bootstrap/`)
```
template/bootstrap/
├── app.php # Application bootstrap file
├── providers.php # Service provider configuration
└── cache/ # Bootstrap cache directory
```
#### Storage (`template/storage/`)
```
template/storage/
├── app/ # Application-specific files
├── framework/ # Framework cache and sessions
└── logs/ # Application log files
```
#### Tests (`template/tests/`)
```
template/tests/
├── Feature/ # Feature tests for application functionality
├── Unit/ # Unit tests for individual components
└── TestCase.php # Base test case class
```
#### Root Files
```
template/
├── artisan # Laravel command-line tool
├── composer.json # PHP dependency definitions
├── composer.lock # Locked dependency versions
├── package.json # Node.js dependency definitions
├── package-lock.json # Locked Node.js dependencies
├── vite.config.js # Vite build configuration
├── phpunit.xml # PHPUnit testing configuration
├── .gitattributes # Git attributes configuration
├── .gitignore # Git ignore patterns
├── .editorconfig # Editor configuration
└── README.md # Project documentation
```
## 🚀 Installation Steps
### Prerequisites
- PHP >= 8.1
- Composer
- MySQL/PostgreSQL
- Node.js & NPM (for asset compilation)
- Web server (Apache/Nginx) or use Laravel's built-in server
### Step 1: Install PHP Dependencies
```bash
composer install
composer update
```
### Step 2: Environment Configuration
```bash
cp .env.example .env
php artisan key:generate
```
Edit `.env` file with your database credentials:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=smarthr
DB_USERNAME=your_username
DB_PASSWORD=your_password
```
### Step 3: Database Setup
```bash
php artisan migrate
```
### Step 4: Install Node Dependencies
```bash
npm install
```
### Step 5: Asset Compilation
```bash
npm run dev # Development build
npm run build # Production build
```
### Step 6: Storage and Cache Setup
```bash
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache
```
### Step 7: Set Permissions (Linux/Mac)
```bash
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
```
### Step 8: Start the Application
```bash
php artisan serve
```
The application will be available at `http://localhost:8000`
## 📚 Key Features
- **User Management**: Complete user registration, authentication, and authorization
- **HR Management**: Employee management, training, timesheets, and performance tracking
- **Project Management**: Project tracking, task management, and team collaboration
- **Communication**: Video/voice calling, social feed, and messaging
- **Reporting**: Comprehensive reporting and analytics
- **Responsive Design**: Modern, mobile-friendly interface
- **Plugin Integration**: 50+ third-party plugins for enhanced functionality
- **Asset Management**: Organized CSS, JavaScript, and image assets
- **Modular Structure**: Well-organized Laravel application architecture
## 📝 License
This project is proprietary software. All rights reserved.
## 🤝 Support
For support and questions, please contact the development team or refer to the documentation in the `documentation/` folder.
---
**Note**: This is a Laravel-based HR management system with comprehensive documentation and modern UI components. Make sure to follow Laravel best practices and security guidelines during development and deployment.