“Smart HR Management System Documentation” by “Mina Samy” v2.0
Smart HR Management System
Table of Contents
- Overview
- Key Features
- Technologies Used
- CSS Files
- JavaScript Files
- Blade
- Controller Files
- Model Files
- Sources and Packages
- Installation Guide
- User Guide
A) Overview - top
The Smart HR Management System is a comprehensive, user-friendly solution for streamlining HR processes
across multiple organizations. It provides a modern and intuitive interface. The system is suitable for
organizations of all sizes, offering tools for attendance tracking, employee management, overtime tracking,
deductions, vacations, and payroll generation, and now supporting multi-company functionality, allowing each
company to manage its own data independently within a single system. Each company can also configure its own
internal policies such as late arrival deduction, half-day rules, working hours, working days, official
holidays, and bonus hours, through a dedicated company policy page.
B) Key Features - top
- Multi-Company Support: Manage unlimited companies with fully independent employees,
payroll, attendance, departments, jobs, and HR data.
- Role-Based Access Control: Three dedicated dashboards (Admin – HR – Employee) with
secure authentication and permission separation.
- Bilingual System: Full support for Arabic (RTL), Urdu
(RTL), and English (LTR).
- Reports & Exporting: Export attendance, payroll, and reports to PDF and
Excel.
- Fully Responsive & Dark Mode: Optimized for all devices with optional dark theme.
- Built with Laravel: Clean, scalable architecture for easy customization and future
expansion.
1) Admin Dashboard
- System Overview Cards: Displays total number of companies, total employees across all
companies, total HR users, and total administrators.
- Interactive Statistics: Visual chart showing employee distribution by company, enabling
quick performance comparison and organizational insights.
- System management: Fast access buttons to:
- Add a new company
- Add a new admin user
- Manage companies
- Manage admins
- Multi-Company Monitoring: Instantly track workforce size and system usage across all
registered companies.
- Secure Super Admin Access: Role-based authentication ensuring only authorized
administrators can access system-level controls.
2) HR Interface
- Dashboard: Overview of employees, attendance status (present, late, absent), and
monthly performance analytics.
- Main data management:
- Employee
- Managers
- Administrations
- Departments
- Jobs
- Company News: Publish and manage company announcements and show this at dashboard of
both hr and employee interface.
- Employee Requests: Manage employee requests and submissions and show the history of
requests.
- Internal Messaging System: Direct announce from HR to employees.
- Performance Evaluation: Define evaluation criteria and assess employee performance.
- Attendance:
- Manually attendance
- Attendance report
- Import excel sheet
- Taxes & Insurance: Apply customizable tax and insurance percentages, with the ability
to deduct taxes from either the basic salary or allowances.
- Deductions: Configure salary deductions by fixed amount or by deducting days.
- Vacations: Configure vacation balances for employees and assign them individually.
Support two types of employees: employees with vacation balance and employees without vacation balance. (The
vacation balance is defined in the Company Policy settings.)
- Overtime Management: Automatic overtime calculation based on company policy settings.
- Payroll:
- Payroll calculation
- Payslip reports
- Salary installments
- Company Policy: Define working hours, working days, overtime rules, penalties, leave
policies, official holidays, and time thresholds for determining late arrival, half day, or absence.
- Multi-Branch Support: Manage multiple company branches and transfer employees between
branches.
- Company Information: Configure company details and upload the company logo.
- Employee Archive: When an employee resigns and the resignation is approved, the
employee is transferred to the archive with the ability to restore them if needed.
3) Employee Interface
- Smart Dashboard: View present days, absence days, late days, attendance summary, latest
company news, and recent activity.
- Salary & Payslip: View detailed salary breakdown and access payslip records.
- Attendance & Absence: Track attendance, absences, and late records.
- Performance Evaluation: View performance results and ratings provided by HR.
- Company Policy: Access official company policies, working hours, overtime rules, and
leave regulations.
- Internal Messaging: receive messages directly from HR.
- Employee Requests: Submit and track various requests including:
- Attendance Request
- Vacation Request
- Overtime Request
- Early Leave Request
- Resignation Request
- Account Settings: Manage profile data.
C) Technologies Used - top
- Backend: Laravel 10 framework.
- Frontend: HTML5, CSS3, Bootstrap, AJAX, JavaScript.
- Database: phpMyAdmin.
- Icons: Font Awesome for icons.
D) CSS Files – Top
The system utilizes multiple CSS files to maintain structure and ensure a consistent style:
Path: public/dist/css
- employeeinterface → dashboard.css: Contains the stylesheet responsible for styling and
enhancing the visual layout of the Employee Interface dashboard page.
- calendar.css: Styles the calendar page and related components.
- custom.css: Styles the sidebar and enabling rtl and ltr.
- darkmode.css: Applies styling adjustments for the dark mode throughout the system.
- mina.css: Provides general styles for the login page.
- payrollcreate.css: Handles the styling for payroll creation forms and layouts.
- account.css: Handles the styling of my account page.
- admin.css: for styling the admin interface.
- dashboard.css: for styling the dashboard page at hr interface.
- attendance-rules.css: for styling the company policy page.
- admin-home.css: for styling the dashboard page of admin interface.
- payslip.css: for styling the payslip page.
E) JavaScript Files - top
Path: public/dist/js
- attendance.js: Handles attendance-related visualizations .
- attendance2.js: Handles another part of attendance.
- administration.js: Handles the administration of company.
- bonus.js: Manages the bonus .
- branches.js: Manages the branches of company.
- Chart.js: Core library used for rendering charts in the dashboard.
- darkmode.js: Manages dark mode functionality for charts and other elements.
- dashboardlist.js: Controls the display and interactions of dashboard lists.
- deduction.js: Manages the deductions
- department.js: Manages the departments
- tax.js: Manages the taxes
- jobs.js: Manages the jobs
- manager.js: Manages the managers
- news.js: Manages the news
- performance_criteria.js: Manages the performance criteria
- performance.js: Manages the performances
- job_history.js: Manages the job history
- insurance.js: Manages the Insurance
- payroll.js: Manages the payroll.
- payrollcreate.js: Supports visual elements during payroll creation.
- insurancecreate.js: Supports visual elements during insurance creation.
- todo.js: Manages task-related charts in the dashboard.
- vacation.js: Manages the vacation.
- transfere.js: Manages the transfere employee feature.
- eye.js: for eye toggle in the login and register page.
- employee.js: for the section of role that is located in add employees or HR.
- payslip.js: for the section of role that is located in payslip of employees.
- attendance settings [Folder] :
holidays.js
hours-days-vacation-bounas.js
late-halfDeduction.js
F) Blade - top
Path: resources/views
(Files)
- login.blade.php: The main authentication page of the system. It allows users to log in
and automatically redirects them to the appropriate interface (Admin or HR) based on their role.
- _message.blade.php: Responsible for displaying system messages
such as success alerts, and error notifications.
Admin interface Path: resources/views/admins
(Folders)
- layouts: Contains the main layout files such as
app, sidebar,
and footer, which define the overall structure and shared components of the Admin Interface
pages.
- home: Includes the
admin_home file, which represents the main dashboard
(home page) of the Admin Interface.
- admin: Contains the
admin_register file for creating new admin accounts
and the index file for displaying the list of registered administrators.
- companies: Includes the
company_register file for adding new companies and
the index file for displaying and managing the companies list.
HR Interface Path: resources/views/backend
(Folders – Each folder contains full CRUD operations for HR management)
- layouts: Shared layout files for the HR Interface (app, sidebar, footer).
- dashboard: Contains dashboard components such as calendar, charts, statistics cards,
employee lists, and To-Do sections.
- employees: Employee management (add, edit, view, archive).
- managers: Manage reporting managers.
- departments: Manage company departments.
- jobss: Manage job titles and positions.
- job-history: Track employee job history and promotions.
-
attendance: Attendance management including:
- employee.blade (for assign manually Present, Late, Half Day, Absent)
- report.blade
- PDF.blade
- biometric-excel.blade
- attendance-rule.blade (for the company rules(policy))
- attendance-summary.blade (summary of company rules)
- taxes: Tax configuration and payroll impact settings.
- insurance: Insurance configuration and payroll deductions.
- payrolls: Payroll generation, salary breakdown, payslip creation.
- vacations: Leave requests, balances, and approvals.
- deductions: Salary deductions management.
- bounas: Bonus management system.
- branches: Company branch management.
- locations: Manage company locations.
- messages: Internal communication between HR and employees.
- requests: Employee requests (leave, complaints, inquiries).
- performance-criteria: Define performance evaluation standards.
- performances: Employee performance evaluations.
- News: Company news publishing system.
- my-account: HR personal account settings.
Employee Interface Path: resources/views/EmployeeInterface
(Folders)
- layouts: Contains the main layout files such as
app, sidebar,
and footer, which define the overall structure and shared components of the Employee
Interface pages.
- attendance: Contains the
index file responsible for displaying the
employee’s attendance records and daily status.
- dashboard: Includes the main dashboard view with summary information, calendar display,
and company news section.
- messages: Contains the
inbox file for viewing received messages and
communication details.
- my-account: Includes the
update file where employees can manage and update
their personal account information.
- payrolls: Contains the
payslip file for viewing salary details and
downloading payroll information in PDF format.
- performances: Includes the
index and view files for reviewing
employee performance evaluations and related details.
- policy: Contains the
index file where employees can review company
policies and regulations.
- requests: Includes subfolders for different request types such as
early-leave, extra, late,
resignation, and vacation. Each folder contains an
index
file for submitting and tracking requests.
G) Controller Files - top
Path: app/Http/Controllers – Contains all controller of both the Admin and HR
dashboards.
- AdminController.php: Manages view and delete admins.
- CompanyController.php: Manages view and delete companies
- AdministrationController.php: Manages view and delete administrations
- AuthController.php: Manages authentication for Admin and HR users.
- BranchController.php: Manages branches and their CRUD operations.
- CalendarController.php: Manages calendar functionality.
- ChartsController.php: Handles dashboard charts and statistics.
- CompanyController.php: Manages companies and their CRUD operations.
- CompanyInfoController.php: Manages company information settings.
- Controller.php: Base controller class.
- DashboardController.php: Controls dashboard views and analytics.
- DeductionController.php: Manages deductions and related CRUD operations.
- DepartmentController.php: Manages departments and their CRUD operations.
- EmployeeController.php: Handles employee management and CRUD operations.
- FinancialAnalysisController.php: Manages financial reports and analysis.
- HomeController.php: Controls home page routing.
- InsuranceController.php: Manages insurance records and operations.
- JobController.php: Manages jobs and their CRUD operations.
- JobHistoryController.php: Manages job history records.
- LocationController.php: Manages company locations.
- ManagerController.php: Manages managers and their CRUD operations.
- MessageController.php: Handles internal messaging system.
- MyAccountController.php: Manages user account settings.
- NewsController.php: Manages company news and announcements.
- OverTimeController.php: Handles overtime calculations and approvals.
- PaymentController.php: Manages payments and salary transactions.
- PayrollController.php: Handles payroll processing and exports.
- PerformanceController.php: Manages performance evaluations.
- PerformanceCriteriaController.php: Manages performance criteria settings.
- RequestController.php: Handles employee requests management.
- TaxController.php: Manages tax calculations and records.
- TodoController.php: Manages to-do tasks.
- VacationController.php: Manages vacation requests and balances.
Path: app/Http/Controllers/EmployeesInterface – Contains all controller of the
Employee dashboards.
- EarlyLeaveController.php: Handles employee early leave requests.
- EmployeeAttendanceController.php: Manages employee attendance view and records.
- EmployeeCalendarController.php: Displays employee calendar and schedules.
- EmployeeHomeController.php: Controls employee dashboard/home page.
- EmployeeLateRemovalController.php: Handles late removal requests.
- EmployeeMyAccountController.php: Manages employee profile and account settings.
- EmployeeNotificationController.php: Handles employee notifications.
- EmployeePayrollController.php: Displays payroll details for employees.
- EmployeePerformanceController.php: Manages employee performance and evaluations.
- EmployeeVacationController.php: Handles vacation requests and tracking.
- ExtraTimeRequestController.php: Manages overtime/extra time requests.
- ResignationController.php: Handles employee resignation requests.
H) Model Files - top
models used for the search functionality and the retrieving of data based on company_id and paginate of the
pages
Path: app/Models
- Admin.php
- Administration.php
- Attendance.php
- AttendanceRule.php
- Branch.php
- Company.php
- Deduction.php
- Department.php
- EarlyLeaveRequest.php
- ExtraTimeRequest.php
- History.php
- HrPermission.php
- Insurance.php
- Job.php
- LateRemovalRequest.php
- Location.php
- Manager.php
- Message.php
- News.php
- Payment.php
- Payroll.php
- PerformanceCriteria.php
- PerformanceEvaluation.php
- Resignation.php
- Task.php
- Tax.php
- Time.php
- User.php
- Vacation.php
- VacationRequest.php
I) Sources and Packages - top
- Icons: Font Awesome
- Admin Template: AdminLTE 3
- Framework: Laravel 10
- PDF Export Library: DomPDF
- Excel Export Library: maatwebsite
J) Installation Guide for (localhost) - top
Note:For installing the system on (localhost).
Follow these clear, step-by-step installation instructions to set up your HR system on localhost:
- Download the Source Code: Download the Source Code: Download the ZIP file containing the HR system source code, MySQL database file, documentation, and default admin credentials.
- Set Up Environment:
- Install XAMPP or MAMP: Install a local server environment to run the
application on localhost. After installation, start the Apache and MySQL services.
- Import the Database: After extracting the project files, you will find two
folders: Source Code and Database. Open the
Database folder and locate the provided
.sql file. Then open
your preferred database management tool (e.g., phpMyAdmin), create a new database, and
import the SQL file into it.
- Install Dependencies:
Open the project folder in your terminal and run the following command to install all required
dependencies:
composer install
- Serve the Application:
Start the Laravel development server by writing the command in the project terminal:
php artisan serve
- Access the Application to start register:
Open your web browser and navigate to your localhost:
like: http://127.0.0.1:8000
K) User Guide - top
Step 1: Login to Admin Dashboard
First, you must log in to the Admin Dashboard.
The admin is responsible for creating the first company in the system.
The default login credentials (email and password) are provided in a TXT file included with the downloaded package.
Step 2: Add a New Company
From the Admin Dashboard, create your first company.
After creating the company, you can assign HR users to it.
Step 3: Login to the Company (HR dashboard)
Use the HR account credentials (email and password) that were created when adding the company to log in to the HR Dashboard.
After Login :
1. Add the Company Managers
2. Add the Departments
3. Add the Job Positions
4. Add Employees and HR Users
Once employees are added, they can log in to the Employee Dashboard.
5. Configure Your Company Policy in Attendance Settings Before Calculating Payroll
Now, You’re Ready!
Now you can start to manage attendance, estimate payroll, track deductions, perform other HR
operations efficiently ,and access employee dashboard.