ERP – HR & People Software | Vibe96

HR & People

ERP

Source code included

Laravel HR, payroll & business ERP for Bangladeshi SMEs with biometric attendance and labour-law compliance

Built by MD. SOHARAWARDY SHUVO Updated 28 Oct 2026 45,327 lines of code

Open live demo Built withClaude Code

About this software

About ERP

RiyanERP is a Laravel 12 monolith serving HR, payroll, attendance, sales, purchase, inventory, invoicing, accounting and project management for Bangladeshi businesses. It enforces Bangladesh labour law (provident fund, tax slabs, festival bonus, final settlement), integrates ZKTeco biometric devices via ADMS push protocol, and offers role-based access (admin, manager, employee) with a separate employee self-service portal. The UI is Bangla/English (Bootstrap 5 + Blade views), with CSV/PDF exports, an AI assistant for natural-language queries, and automated backups. No mobile app; deployment is Docker or traditional LAMP.

Category: HR & PeopleStack: Laravel 12 · MySQL 5.7+ / MariaDB 10.3+Built with: Claude Code Licence: Single-site, full source

Why ERP

What makes it better
than the alternatives

  1. 01

    Bangladesh labour law built-in

  2. 02

    ZKTeco ADMS biometric push

  3. 03

    Employee self-service portal

  4. 04

    AI assistant for Bangla/English queries

  5. 05

    Single-site Laravel monolith

HR & Employees

  • Employee records (code
  • join date
  • department
  • designation
  • shift
  • salary
  • bank
  • NID
  • photo upload via EmployeePhotoService)
  • Departments
  • designations
  • shift settings (in/out times
  • grace
  • half-day threshold
  • OT rules)
  • Lifecycle events: increment
  • promotion
  • increment-with-promotion
  • separation (final settlement calculator)
  • Appraisal cycles
  • goals (weighted scoring)
  • reviews strengths/improvements/comments
  • overall rating)
  • Recruitment: job postings
  • applications
  • interviews (scheduled/completed
  • feedback
  • hire/reject)
  • Training sessions (title
  • trainer
  • attendees
  • materials upload)
  • Letters (appointment
  • confirmation
  • increment
  • warning
  • termination) from templates with placeholders
  • Policies (code of conduct
  • leave
  • attendance) with version history and employee acknowledgement tracking
  • Meetings (agenda
  • attendees
  • minutes
  • action items)
  • Gate pass (out/in times
  • purpose
  • vehicle
  • approval workflow
  • overdue alerts via CheckGatePassOverdue command)
  • Outside duty (movement register
  • daily report by department/employee)
  • Employee reports: total list
  • new joins
  • released
  • inactive
  • shift-wise
  • worker register (Form XII)
  • picture list
  • ID cards (bulk print)

Attendance & Biometric

  • Manual attendance marking present/absent/late/half_day
  • check-in/out times
  • late/early/OT minutes calculated from shift)
  • ZKTeco ADMS push: /biometric/push/{api_key} receives ATTLOG
  • /iclock/getrequest delivers queued commands (BiometricCommandService)
  • Direct TCP pull from ZKTeco devices (ZkTecoClient
  • port 4370
  • GET_ATTLOG command)
  • BiometricDevice model (name
  • IP
  • port
  • serial_number
  • api_key
  • protocol adms/iclock
  • status active/inactive)
  • BiometricPunch records (device_user_id
  • punch_time
  • punch_type 0=check-in/1=check-out
  • verify_type
  • processed flag)
  • Auto-attendance generation: first punch = check-in
  • last = check-out
  • shift-based late/early/OT math
  • deduplication (same user within 1 minute)
  • Live punches view (last 100
  • unprocessed count
  • manual process button)
  • Employee sync to device: queueActiveEmployees() queues DATA UPDATE USERINFO commands for all active employees
  • Attendance reports: daily (by date
  • department
  • status tabs)
  • monthly (employee × days grid
  • P/A/L/H/OT
  • summary present/absent/late/half_day/OT/missing-out counts)
  • continuous absent (3+ days)
  • job card (single employee
  • date range
  • daily in/out/hours/OT

Payroll & Compliance

  • Payroll generation (month/year
  • department filter
  • basic + allowances
  • deductions
  • gross/net
  • PayrollCalculationService)
  • Salary components: basic
  • house_rent
  • medical
  • conveyance
  • other_allowance
  • attendance_bonus (configurable per employee)
  • Deductions: provident_fund (employee + employer contributions
  • PfService)
  • income_tax (IncomeTaxService with Bangladesh slabs)
  • advance
  • loan_deduction
  • fine
  • other_deduction
  • Overtime: ot_hours from attendance
  • ot_rate per employee
  • ot_amount = hours × rate (Section 108: 2× basic for first 2h
  • then pro-rata)
  • Festival bonus generation (Eid-ul-Fitr
  • Eid-ul-Adha: basic salary
  • pro-rated if <1 year service
  • eligibility date
  • payment date)
  • Payslips (PDF export per employee
  • Bangla/English
  • breakdown of earnings/deductions
  • net pay in words via NumberHelper)
  • Payroll reports: summary sheet (employee list
  • gross/deductions/net
  • bank sheet (account-wise)
  • denomination sheet (note/coin breakdown)
  • OT sheet
  • attendance bonus sheet
  • advance sheet
  • deduction sheet
  • addition sheet
  • income tax sheet (employee-wise tax
  • cumulative YTD)
  • Provident Fund: employee + employer contributions (configurable %)
  • PF ledger per employee (opening
  • contributions
  • interest
  • withdrawals
  • closing)
  • statement export
  • Income Tax: slab-based calculation (first 300k exempt
  • then 5%/10%/15%/20%/25% bands)
  • tax certificate generation
  • YTD tracking
  • Loans: principal
  • interest_rate
  • installments
  • start_date
  • monthly deduction from payroll
  • repayment schedule
  • balance tracking
  • Fines: amount
  • reason
  • deducted_from_payroll flag
  • linked to payroll record

Leave Management

  • Leave types: casual
  • sick
  • annual
  • maternity
  • paternity
  • unpaid (days_per_year
  • carry_forward
  • max_carry_forward
  • requires_approval)
  • Leave applications (employee_id
  • type
  • from/to dates
  • days
  • reason
  • status pending/approved/rejected
  • approver_id
  • approval_date)
  • Leave balance tracking (earned
  • taken
  • balance per type per employee
  • CheckLeaveExhaustion command alerts when balance <3 days)
  • Approval workflow (manager/admin approves
  • rejection reason
  • email notification via NotifyService)
  • Leave reports: register (all leaves by employee
  • type
  • dates)
  • entry report (applications by status/date range)
  • department report (leave summary by department)
  • daily leave (who's on leave today)

Sales & Inventory

  • Products (name
  • code
  • category
  • unit
  • purchase_price
  • sale_price
  • stock_quantity
  • reorder_level
  • status active/inactive)
  • Categories (hierarchical
  • parent_id)
  • Stock alerts (products below reorder_level
  • dashboard widget)
  • Sales orders (customer
  • date
  • items × quantity × unit_price
  • subtotal
  • discount
  • tax
  • total
  • status draft/confirmed/delivered/cancelled
  • Invoices (proforma/final
  • customer
  • billing/shipping address
  • items
  • payment terms
  • due date
  • status draft/sent/paid/overdue
  • print layouts: standard/proforma/internal/price-record
  • Purchase orders (supplier
  • date
  • items
  • total
  • status pending/received/cancelled
  • Customers (name
  • email
  • phone
  • address
  • contact_person
  • credit_limit
  • outstanding_balance)
  • Suppliers (name
  • email
  • phone
  • address
  • contact_person
  • payment_terms)

Accounting & Finance

  • Chart of accounts (name
  • type asset/liability/equity/revenue/expense
  • balance
  • status active/inactive)
  • Transactions (date
  • account_id
  • type debit/credit
  • amount
  • description
  • reference
  • created_by)
  • Expenses (date
  • category
  • account_id
  • amount
  • description
  • receipt upload
  • status pending/approved/paid
  • Bills (supplier
  • date
  • due_date
  • items
  • total
  • status unpaid/paid/overdue
  • Financial reports: trial balance (debits/credits by account)
  • profit & loss (revenue - expenses
  • period filter)
  • balance sheet (assets = liabilities + equity
  • as-of date)
  • cash flow operating/investing/financing activities)
  • account ledger (transaction history per account)
  • FinancialReportService: trialBalance()
  • profitAndLoss()
  • balanceSheet()
  • cashFlow() methods

Projects & Tasks

  • Projects (name
  • code
  • client
  • start/end dates
  • budget
  • status planning/active/on-hold/completed/cancelled
  • Tasks (project_id
  • title
  • description
  • assigned_to
  • priority low/medium/high/urgent
  • status pending/in-progress/completed/cancelled
  • due_date
  • estimated_hours
  • actual_hours)
  • Task comments and attachments
  • Project dashboard (task counts by status
  • budget vs actual
  • timeline)

Employee Self-Service Portal

  • Separate login (auth:employee guard
  • EspAuthService checks user.status=active AND employee.status=active
  • shared throttling with staff login)
  • Dashboard (attendance summary
  • leave balance
  • upcoming holidays
  • recent payslips)
  • Attendance view (monthly calendar
  • daily in/out/hours/OT
  • job card export)
  • Leave applications (apply
  • view status
  • balance per type)
  • Payslips (list
  • view
  • download PDF)
  • PF statement (contributions
  • interest
  • balance)
  • Tax summary (YTD tax
  • slab breakdown
  • certificate download)
  • Profile (view personal details
  • change password
  • upload photo)
  • Queries (raise HR/payroll/IT queries
  • view responses
  • status pending/resolved)

Settings & Admin

  • Users (name
  • email
  • role admin/manager/employee
  • status active/inactive
  • must_change_password flag
  • linked employee_id)
  • Roles: admin (all access)
  • manager HR/ops/reports
  • no settings/users/payroll-generate/finance/biometric-devices
  • employee (ESP only
  • scoped to own records via User::linkedEmployeeId())
  • Module toggles (CheckModuleEnabled middleware
  • config keys: modules.hr
  • .payroll
  • .attendance
  • .leave
  • .sales
  • .inventory
  • .accounting
  • .projects)
  • Company settings (name
  • address
  • logo upload
  • shared to all views via AppServiceProvider)
  • Backup settings (enabled
  • frequency daily/weekly/monthly
  • time
  • include_files
  • retention_days
  • retention_min_count
  • BackupService: mysqldump + optional storage/app tar
  • auto-cleanup via RunBackup command)
  • Notifications (in-app
  • email via NotifyService
  • AlertNotification class
  • unread count in nav)
  • Chat (internal messaging
  • ChatController
  • real-time via Pusher/polling stub)
  • Data import (CsvImportService
  • XlsxReader for employees/attendance/products
  • validation
  • duplicate detection
  • dry-run preview)
  • AI assistant (AiAssistantController
  • keyword-matching for Bangla/English queries: employee count
  • new joins
  • department breakdown
  • today's attendance
  • late arrivals
  • pending leave
  • payroll totals
  • stock alerts
  • sales
  • festival bonus status)
  • Documentation (built-in help pages: getting-started
  • employees
  • attendance
  • leave
  • payroll
  • hr-requests
  • accounting
  • inventory-sales
  • projects
  • letters-policies
  • chat
  • settings)
  • Audit log (user actions
  • IP
  • timestamps — stub
  • no model yet)
  • Language switcher (Bangla/English
  • SetLocale middleware
  • resources/lang/bn.json + en.json)

Reports & Exports

  • ExportsReports trait (CSV: headers + data rows
  • PDF: PdfExportService with TCPDF
  • landscape/portrait
  • company header)
  • Employee reports: total list
  • new joins
  • released
  • inactive
  • shift-wise
  • worker register (Form XII)
  • picture list
  • ID cards
  • Attendance reports: daily
  • monthly
  • summary
  • continuous absent
  • job card (all with CSV/PDF export)
  • Payroll reports: summary
  • bank
  • denomination
  • OT
  • attendance bonus
  • advance
  • deduction
  • addition
  • income tax (all with CSV/PDF export)
  • Leave reports: register
  • entry
  • department
  • daily (CSV/PDF)
  • Financial reports: trial balance
  • P&L
  • balance sheet
  • cash flow
  • account ledger (CSV/PDF)
  • Sales reports: invoice list
  • customer statement (CSV/PDF)
  • Inventory reports: stock summary
  • low stock
  • product movement (CSV/PDF)

Quality report

Manually reviewed

90/ 100

Automated audit score

✓ Approved by our review team

Listed after manual review.
Audit run: 23 Oct 2026
Reviewed by Vibe96 staff, Dubai.

Security93
Code structure72
Docs & completeness100
Dependency health85
Build & deploy92
Reviewer notes (5 minor)

Moderate code duplication and some oversized controllers; business logic scattered across layers; weak default credentials in seed data and documentation; no live secrets found; build reproducible with gaps: missing .env setup, incomplete docker instructions, no npm build. None of these stop the software from working; the developer has been told and improvements come in a future update.

Versions & updates

1.0.0
First release28 Oct 2026✓ Reviewed & audited

No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.

Quality report

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.
$154Single-site licence Details