About this software
About HR Manager: Employees, Attendance, Leave & Payroll
HR Manager is a Laravel 13 + Filament 5 app for small companies: employees, attendance with clock-in, leave with real rules and approvals, monthly payroll with payslips, and a careers page with a hiring pipeline. Business rules live in service classes (Calendar, Leave, Attendance, Payroll, Employee, Recruitment). Roles are admin, HR, manager and employee; managers see their team, employees only their own records. 108 automated tests.
Why HR Manager: Employees, Attendance, Leave & Payroll
What makes it better
than the alternatives
- 01
Working-day calendar
Leave and attendance count only shift weekdays minus company holidays, with half-day support
- 02
Approval workflow
Line managers or HR decide leave requests, never the requester themselves (except admin override)
- 03
Payroll locking
Approved payslips freeze leave and attendance for that month, preventing retroactive changes
- 04
Prorated payroll
Joiners and leavers are paid by the day, unpaid leave and absences are deducted at the daily rate
- 05
Public careers page
Job openings with application form (honeypot, rate limits) create candidates in the hiring pipeline
Employee Management
- Employee records with auto-generated codes (E-0001)
- department
- designation
- manager
- shift
- employment type and status (probation
- active
- on notice
- left)
- Reporting line with loop prevention: nobody reports to themselves or someone below them
- Documents with expiry dates and dashboard warnings for documents expiring within 45 days
- Contact details
- emergency contact and bank account information
- Confirm
- notice and terminate actions with date tracking
Attendance Tracking
- Clock in and out from the My Day page
- one record per person per day
- Late mark when clock-in exceeds shift start plus grace minutes
- half-day mark after the shift's half-day threshold
- HR corrections with required notes
- marks recalculated automatically
- Absent days derived from working days without attendance or approved leave
- never stored
- Month summary showing present
- late
- half-day and absent counts
Leave Management
- Leave types with annual allocation
- paid/unpaid flag
- monthly limit
- service-months requirement
- probation rules
- gender rules and carry-forward cap
- Requests count working days only (skip weekends and holidays)
- support half days
- refuse overlaps and cross-year requests
- Approval by line manager or HR (never self-approval except admin)
- rejection requires a reason
- cancellation returns days to balance
- Balance checked at approval time
- over-utilization rules (not allowed
- allowed as paid
- allowed as unpaid)
- Unpaid days taken from the last working days of a request
- locked months (with approved payslip) prevent new leave
Payroll Processing
- Monthly Pay Run creates draft payslips with employee-specific allowances and deductions (fixed or percentage of base)
- Prorated pay for joiners and leavers
- unpaid leave and absent days deducted at daily rate
- Flat income tax calculated on net pay after deductions
- Approve to assign sequential payslip numbers (PS-2026-00001) and lock the month
- mark as paid when disbursed
- Printable payslip with signed
- expiring link (60-day default)
Recruitment Pipeline
- Job openings with department
- description
- requirements and accepting/closed status
- Public careers page lists open positions
- application form with honeypot and rate limits
- Candidate stages: Applied
- Screening
- Interview
- Offer
- Rejected
- Hired
- Ratings
- notes and rejection with required reason
- Hire action creates employee on probation from Offer stage
Dashboard & Widgets
- HR stats: total employees
- active count
- on leave today
- pending approvals
- Attendance chart showing present
- late
- half-day and absent trends
- Department headcount chart
- Who is out: next 7 days of approved leave
- Upcoming events: birthdays and work anniversaries in next 14 days
- Expiring documents widget for documents due within 45 days
Reports
- Headcount by department with
active/probation/notice/leftbreakdown - Monthly attendance per person showing present
- late
- half-day and absent days
- Leave taken by type with employee breakdown
- Payroll cost by month with base
- allowances
- deductions and net totals
- All reports scoped to user visibility (HR/admin see all
- managers see team
- employees see own)
Settings & Administration
- Company name
- shifts with start/end times
- grace minutes and half-day threshold
- Holidays with date and description
- skipped in working-day calculations
- Announcements (pinned or draft) and recognition posts from managers and HR
- User management with roles (admin
- hr
- manager
- employee) and email/password login
- Demo mode with landing page and one-click signed logins for each role
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 73.6% |
| SQL | — | — | Database | 24.1% |
| CSS | — | — | Styling | 1.8% |
| Shell | — | — | Scripts | 0.3% |
| JavaScript | — | — | Front-end | 0.2% |
- Primary language
- PHP 8.3+
- Framework
- Laravel 13.17 + Filament 5.10
- Database
- MySQL 8.0+ (SQLite for local development)
- Authentication
- Laravel session-based authentication with role-based access control (admin, hr, manager, employee)
- Licence
- Single-site
- Screens
- 42
- Database tables
- 18
- Supported languages
- English only
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge — last 2 versions)
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 512 MB RAM | 1 GB RAM |
| OS | PHP 8.3+, Apache or Nginx, Node.js 20+ (build only) | PHP 8.3+, Apache or Nginx, Node.js 20+ (build only) |
| Est. monthly hosting | $10 | $10 |
```bash cp .env.example .env # set APP_KEY, DB_PASSWORD and SEED_ADMIN_PASSWORD in .env docker compose up -d # open http://localhost:8080/admin ```
```bash cp .env.example .env # set APP_URL, DB_* and SEED_ADMIN_PASSWORD in .env composer install --no-dev --optimize-autoloader npm ci && npm run build php artisan key:generate php artisan migrate --force && php artisan db:seed --force php artisan storage:link # point Nginx at public/ with PHP-FPM ```
```bash composer install && npm ci && npm run build php artisan key:generate && php artisan migrate --seed php artisan serve ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (3 minor)
Strong authentication and authorization with minor read-access gaps; good module boundaries with some duplication in agent/claude skill files and minor hard-coded values; database access is mostly safe; a few missing indexes and one unscoped delete. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.