Quanta HRIS is a complete system for managing employees. It helps companies track attendance and calculate salaries easily. This system handles Indonesian tax rules (PPh 21 TER) automatically.
This repository contains the Backend API and the Web CMS (Admin Panel). If you are looking for the mobile application code, please check: Quanta HRIS Mobile App Repository
-
Attendance (Absensi)
- Location Check: Employees can only clock in if they are near the office.
- Anti-Fake GPS: The system calculates real distances to prevent cheating.
- Selfie Verification: Employees must take a photo when clocking in or out.
- Automatic Status: The system knows if an employee is On Time, Late, or Leaving Early.
-
Payroll (Gaji)
- Tax Calculation: Automatically calculates PPh 21 taxes using the TER method.
- BPJS: Calculates BPJS Kesehatan and Ketenagakerjaan cuts.
- Automatic Deductions: Salary is automatically cut if an employee is late or absent without notice.
- Payslips: Creates PDF payslips for employees.
-
Employee Management
- Leave & Permits: Employees can request time off (Cuti/Izin) easily.
- Overtime: The system detects overtime work automatically.
| Dashboard | Employee Management |
|---|---|
![]() |
![]() |
| Attendance & Geolocation | Payroll & Payslips |
|---|---|
![]() |
![]() |
- Framework: Laravel 12
- Database: MySQL
- Server: Nginx
- Deployment: Docker & Docker Compose
Follow these steps to run the project on your computer:
-
Clone the Repository
git clone https://github.com/munovrizall/quanta-hris-laravel.git cd quanta-hris-laravel -
Setup Environment Copy the
.envfile and set up your database connection.cp .env.example .env
-
Install Libraries
composer install
-
Generate Key
php artisan key:generate
-
Setup Database Make sure your MySQL is running, then run this command to create tables and dummy users:
php artisan migrate --seed
-
Run Server
php artisan serve
After running migrate --seed, you can use these accounts to log in:
| Role | Password | |
|---|---|---|
| Admin | admin@smartcool.id |
admin123 |
| CEO | ceo@smartcool.id |
ceo123 |
| Manager HRD | manager.hrd1@smartcool.id |
managerhrd123 |
| Staff HRD | staff.hrd1@smartcool.id |
staffhrd123 |
| Manager Finance | manager.finance@smartcool.id |
managerfinance123 |
| Account Payment | account.payment11@smartcool.id |
accountpayment123 |
| Employee | rizal@smartcool.id |
rizal123 |
If you want to deploy to a live server using Docker:
-
Start the App
docker-compose up -d --build
-
Run Setup Commands
docker compose exec app composer install --optimize-autoloader --no-dev docker compose exec app php artisan migrate --force docker compose exec app php artisan config:cache docker compose exec app php artisan route:cache docker compose exec app php artisan view:cache
-
Fix Permissions
docker compose exec app chmod -R 775 storage bootstrap/cache
For the app to work correctly (especially images and links), change these lines in your .env file:
APP_URL=https://your-domain.com
ASSET_URL=https://your-domain.com
FILESYSTEM_DISK=public


