situs hk pools

situs hk pools

situs hk pools

situs hk pools

situs hk pools

situs hk pools

hk pools

hk pools

hk pools

hk pools

toto togel

toto togel

hk pools

situs hk pools

hk pools

situs hk pools

hk pools

hk pools

situs hk pools

situs hk pools

hk pools

hk pools

toto slot

toto slot

situs hk pools

situs hk pools

toto togel

toto togel

togel online

togel online

sydney lotto

sydney lotto

sydney pools

sydney pools

situs toto

situs toto

toto slot

slot

toto slot

slot

/* * STC BioAccess Pro Enterprise — landing page styles * Namespaced under .stcbal to avoid leaking into the theme. * Palette pulled from the actual application UI: deep navy sidebar, * primary blue accent, white cards, soft grey section backgrounds. */ .stcbal { –stcbal-navy: #0b1730; –stcbal-navy-2: #101f3d; –stcbal-blue: #2563eb; –stcbal-blue-dark: #1d4ed8; –stcbal-ink: #0f172a; –stcbal-body: #3b4557; –stcbal-border: #e4e8f0; –stcbal-bg-muted: #f5f7fb; –stcbal-white: #ffffff; –stcbal-green: #16a34a; –stcbal-amber: #d97706; –stcbal-radius: 14px; –stcbal-shadow: 0 10px 30px -12px rgba(15, 23, 42, 0.18); –stcbal-max: 1180px; font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, “Helvetica Neue”, Arial, sans-serif; color: var(–stcbal-ink); line-height: 1.6; background: var(–stcbal-white); overflow-x: hidden; } .stcbal * { box-sizing: border-box; } .stcbal img { max-width: 100%; height: auto; display: block; } .stcbal-container { max-width: var(–stcbal-max); margin: 0 auto; padding: 0 24px; } .stcbal-section { padding: 84px 0; } .stcbal-section–muted { background: var(–stcbal-bg-muted); } .stcbal-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(–stcbal-blue); margin-bottom: 12px; } .stcbal-h1 { font-size: clamp(32px, 4.5vw, 52px); line-height: 1.1; font-weight: 800; margin: 0 0 18px; color: var(–stcbal-white); letter-spacing: -0.01em; } .stcbal-h2 { font-size: clamp(26px, 3.2vw, 36px); font-weight: 800; margin: 0 0 20px; letter-spacing: -0.01em; } .stcbal-h4 { font-size: 18px; font-weight: 700; margin: 0 0 8px; } .stcbal-lead { font-size: 18px; color: var(–stcbal-body); max-width: 760px; margin: 0 0 20px; } .stcbal-note { font-size: 14px; color: var(–stcbal-body); background: var(–stcbal-bg-muted); border-inline-start: 3px solid var(–stcbal-blue); padding: 12px 16px; border-radius: 8px; margin-top: 20px; } .stcbal-section–muted .stcbal-note { background: var(–stcbal-white); } /* ———- Hero ———- */ .stcbal-hero { background: radial-gradient(1200px 600px at 15% -10%, #16264d 0%, var(–stcbal-navy) 55%), var(–stcbal-navy); color: var(–stcbal-white); padding: 96px 0 80px; } .stcbal-hero__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; } .stcbal-hero__tagline { font-size: 19px; color: #cbd5f0; max-width: 520px; margin: 0 0 28px; } .stcbal-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 28px; } .stcbal-hero__badges { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 0; margin: 0; font-size: 13px; color: #a9b8dd; } .stcbal-hero__badges li { position: relative; padding-inline-start: 18px; } .stcbal-hero__badges li::before { content: “”; position: absolute; inset-inline-start: 0; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(–stcbal-blue); } .stcbal-hero__visual { border-radius: var(–stcbal-radius); overflow: hidden; box-shadow: 0 24px 60px -18px rgba(0,0,0,0.55); border: 1px solid rgba(255,255,255,0.08); } .stcbal-hero__img { width: 100%; } /* ———- Buttons ———- */ .stcbal-btn { display: inline-flex; align-items: center; justify-content: center; padding: 13px 26px; border-radius: 10px; font-weight: 700; font-size: 15px; text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease; border: 2px solid transparent; } .stcbal-btn–primary { background: var(–stcbal-blue); color: #fff; box-shadow: 0 10px 24px -8px rgba(37, 99, 235, 0.6); } .stcbal-btn–primary:hover { background: var(–stcbal-blue-dark); transform: translateY(-1px); color: #fff; } .stcbal-btn–ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,0.35); } .stcbal-btn–ghost:hover { border-color: #fff; color: #fff; transform: translateY(-1px); } .stcbal-btn–ghost-invert { background: transparent; color: var(–stcbal-navy); border-color: var(–stcbal-navy); } .stcbal-btn–ghost-invert:hover { background: var(–stcbal-navy); color: #fff; } /* ———- Overview / flow ———- */ .stcbal-overview { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 48px; align-items: start; } .stcbal-overview__diagram { background: var(–stcbal-bg-muted); border: 1px solid var(–stcbal-border); border-radius: var(–stcbal-radius); padding: 28px; } .stcbal-flow { list-style: none; counter-reset: step; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; } .stcbal-flow li { counter-increment: step; background: var(–stcbal-white); border: 1px solid var(–stcbal-border); border-radius: 8px; padding: 10px 14px 10px 40px; position: relative; font-weight: 600; font-size: 14px; } .stcbal-flow li::before { content: counter(step); position: absolute; inset-inline-start: 10px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border-radius: 50%; background: var(–stcbal-blue); color: #fff; font-size: 12px; display: flex; align-items: center; justify-content: center; } .stcbal-flow–horizontal { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 6px; margin: 24px 0 8px; } .stcbal-flow–horizontal span:not([aria-hidden]) { background: var(–stcbal-bg-muted); border: 1px solid var(–stcbal-border); padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 13.5px; } .stcbal-flow–horizontal span[aria-hidden] { color: var(–stcbal-blue); font-weight: 700; } .stcbal-flow–arch span:not([aria-hidden]) { background: var(–stcbal-white); } /* ———- Grid / cards ———- */ .stcbal-grid { display: grid; gap: 22px; margin-top: 36px; } .stcbal-grid–2 { grid-template-columns: repeat(2, 1fr); } .stcbal-grid–3 { grid-template-columns: repeat(3, 1fr); } .stcbal-grid–4 { grid-template-columns: repeat(4, 1fr); } .stcbal-card { background: var(–stcbal-white); border: 1px solid var(–stcbal-border); border-radius: var(–stcbal-radius); padding: 26px 22px; box-shadow: var(–stcbal-shadow); transition: transform 0.18s ease, box-shadow 0.18s ease; } .stcbal-card:hover { transform: translateY(-3px); } .stcbal-card__icon { font-size: 26px; display: block; margin-bottom: 14px; } .stcbal-card p { color: var(–stcbal-body); font-size: 14.5px; margin: 0; } .stcbal-panel { background: var(–stcbal-white); border: 1px solid var(–stcbal-border); border-radius: var(–stcbal-radius); padding: 26px; } .stcbal-panel p { color: var(–stcbal-body); } /* ———- Split sections ———- */ .stcbal-split { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; } .stcbal-split–reverse .stcbal-shot { order: 2; } .stcbal-shot { border-radius: var(–stcbal-radius); overflow: hidden; border: 1px solid var(–stcbal-border); box-shadow: var(–stcbal-shadow); } .stcbal-check-list { list-style: none; padding: 0; margin: 18px 0 0; } .stcbal-check-list li { position: relative; padding-inline-start: 28px; margin-bottom: 10px; color: var(–stcbal-body); font-size: 15px; } .stcbal-check-list li::before { content: “✓”; position: absolute; inset-inline-start: 0; color: var(–stcbal-green); font-weight: 800; } /* ———- Integrations ———- */ .stcbal-panel–current { border-top: 4px solid var(–stcbal-green); } .stcbal-panel–future { border-top: 4px solid var(–stcbal-amber); } .stcbal-tag { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; margin-bottom: 16px; } .stcbal-tag–current { background: #dcfce7; color: #166534; } .stcbal-tag–future { background: #fef3c7; color: #92400e; } .stcbal-tag–module { background: var(–stcbal-navy); color: #fff; margin-inline-end: 8px; } .stcbal-vendor-list { list-style: none; padding: 0; margin: 0; } .stcbal-vendor-list li { padding: 10px 0; border-bottom: 1px solid var(–stcbal-border); font-size: 14.5px; color: var(–stcbal-body); } .stcbal-vendor-list li:last-child { border-bottom: none; } .stcbal-vendor-list strong { color: var(–stcbal-ink); } /* ———- Gallery ———- */ .stcbal-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 36px; } .stcbal-gallery-item { margin: 0; background: var(–stcbal-white); border: 1px solid var(–stcbal-border); border-radius: var(–stcbal-radius); overflow: hidden; box-shadow: var(–stcbal-shadow); } .stcbal-gallery-item img { aspect-ratio: 16/10; object-fit: cover; object-position: top; } .stcbal-gallery-item figcaption { padding: 16px 18px 20px; } .stcbal-gallery-item figcaption strong { display: block; font-size: 15px; margin: 6px 0 4px; } .stcbal-gallery-item figcaption span:last-child { display: block; font-size: 13.5px; color: var(–stcbal-body); } /* ———- CTA ———- */ .stcbal-cta { background: var(–stcbal-navy-2); color: #fff; padding: 72px 0; } .stcbal-cta__inner { text-align: center; } .stcbal-cta h2 { color: #fff; } .stcbal-cta p { color: #c3cee9; max-width: 560px; margin: 0 auto 28px; font-size: 17px; } .stcbal-cta .stcbal-hero__cta { justify-content: center; } .stcbal-cta .stcbal-btn–ghost-invert { color: #fff; border-color: rgba(255,255,255,0.4); } .stcbal-cta .stcbal-btn–ghost-invert:hover { background: #fff; color: var(–stcbal-navy); } /* ———- Motion ———- */ .stcbal [data-stcbal-reveal] { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease, transform 0.5s ease; } .stcbal [data-stcbal-reveal].is-visible { opacity: 1; transform: none; } @media (prefers-reduced-motion: reduce) { .stcbal *, .stcbal *::before, .stcbal *::after { animation: none !important; transition: none !important; } .stcbal [data-stcbal-reveal] { opacity: 1; transform: none; } } /* ———- Safe no-JS fallback: keep all content visible ———- */ .stcbal [data-stcbal-reveal] { opacity: 1; transform: none; } /* ———- Responsive ———- */ @media (max-width: 992px) { .stcbal-hero__inner, .stcbal-overview, .stcbal-split, .stcbal-split–reverse { grid-template-columns: 1fr; } .stcbal-split–reverse .stcbal-shot { order: 0; } .stcbal-grid–4 { grid-template-columns: repeat(2, 1fr); } .stcbal-grid–3 { grid-template-columns: repeat(2, 1fr); } .stcbal-gallery-grid { grid-template-columns: repeat(2, 1fr); } .stcbal-hero { padding: 72px 0 56px; } } @media (max-width: 600px) { .stcbal-section { padding: 56px 0; } .stcbal-grid–4, .stcbal-grid–3, .stcbal-grid–2, .stcbal-gallery-grid { grid-template-columns: 1fr; } .stcbal-hero__cta, .stcbal-cta .stcbal-hero__cta { flex-direction: column; align-items: stretch; } .stcbal-btn { width: 100%; } .stcbal-flow–horizontal { flex-direction: column; align-items: stretch; } .stcbal-flow–horizontal span[aria-hidden] { display: none; } } /* ———- v2 additions: trust strip, formula, tiers, FAQ, RTL ———- */ .stcbal-hero__sub { color: #a9b8dd; font-size: 15.5px; max-width: 540px; margin: -12px 0 26px; } .stcbal-trust { background: var(–stcbal-navy-2); border-bottom: 1px solid rgba(255,255,255,0.08); } .stcbal-trust__row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding: 22px 24px; } .stcbal-trust__row div { display: flex; align-items: baseline; gap: 8px; color: #cbd5f0; font-size: 13.5px; } .stcbal-trust__row strong { color: #fff; font-size: 24px; font-weight: 800; } .stcbal-diagram-note { font-size: 13px; color: var(–stcbal-body); margin: 16px 0 0; } code { background: var(–stcbal-bg-muted); border: 1px solid var(–stcbal-border); border-radius: 4px; padding: 1px 6px; font-size: 0.92em; } .stcbal-formula { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 6px; background: var(–stcbal-bg-muted); border: 1px solid var(–stcbal-border); border-radius: 12px; padding: 18px 20px; margin: 18px 0; font-size: 14px; font-weight: 700; } .stcbal-formula span:not(.stcbal-formula__op):not(.stcbal-formula__result) { background: #fff; border: 1px solid var(–stcbal-border); padding: 7px 12px; border-radius: 999px; } .stcbal-formula__op { color: var(–stcbal-blue); font-weight: 800; } .stcbal-formula__result { background: var(–stcbal-navy) !important; color: #fff !important; border-color: var(–stcbal-navy) !important; } .stcbal-card–tier { text-align: center; border-top: 4px solid var(–stcbal-border); } .stcbal-card–tier-highlight { border-top-color: var(–stcbal-blue); box-shadow: 0 16px 34px -14px rgba(37,99,235,0.35); } .stcbal-faq { max-width: 820px; margin-top: 28px; display: flex; flex-direction: column; gap: 10px; } .stcbal-faq__item { background: var(–stcbal-white); border: 1px solid var(–stcbal-border); border-radius: 10px; padding: 4px 20px; } .stcbal-faq__item summary { cursor: pointer; font-weight: 700; padding: 16px 0; list-style: none; position: relative; padding-inline-end: 28px; } .stcbal-faq__item summary::-webkit-details-marker { display: none; } .stcbal-faq__item summary::after { content: “+”; position: absolute; inset-inline-end: 0; top: 14px; font-size: 20px; color: var(–stcbal-blue); } .stcbal-faq__item[open] summary::after { content: “−”; } .stcbal-faq__item p { color: var(–stcbal-body); margin: 0 0 18px; font-size: 14.5px; } /* ———- RTL support ———- */ .stcbal[dir=”rtl”] { font-family: “Segoe UI”, Tahoma, Arial, sans-serif; text-align: right; } .stcbal[dir=”rtl”] .stcbal-flow–horizontal span[aria-hidden], .stcbal[dir=”rtl”] .stcbal-hero__badges li::before { } .stcbal[dir=”rtl”] .stcbal-flow–horizontal span[aria-hidden] { display: inline-block; transform: scaleX(-1); } .stcbal[dir=”rtl”] .stcbal-note { border-inline-start: 3px solid var(–stcbal-blue); } @media (max-width: 992px) { .stcbal-trust__row { justify-content: center; text-align: center; } }
STC – Star Technology

STC BioAccess Pro Enterprise

One connected platform for biometric devices, access control, time & attendance, HR and payroll — built on a real, in-production system that already runs employee lifecycles end to end, not a concept deck.

From the moment a fingerprint is enrolled on a terminal to the moment a payslip is approved, every step lives in one auditable record — no spreadsheets stitched together, no manual re-typing between systems.

  • Role-based access
  • Multi-site organization
  • IDEMIA & UBio integrated
  • Arabic / English UI
  • Layered, provider-based architecture
STC BioAccess Pro Enterprise dashboard showing device fleet status and attendance activity
5connected modules
2live hardware vendors
3role-based permission levels
4levels of location hierarchy
2interface languages
Product Overview

A complete workforce & biometric management platform

STC BioAccess Pro Enterprise manages the full lifecycle of an employee — from biometric enrollment and device assignment, through attendance and HR, to payroll — alongside a complete multi-site device organization: company, site, building, floor and device.

The platform is a web-based evolution of an established desktop biometric management application, rebuilt from the ground up on a modern, layered architecture: presentation and routes, services, repositories and domain logic, a provider abstraction layer, and vendor-specific hardware integration underneath. Nothing about that rebuild is theoretical — it is the same engine that already synchronizes real terminals in the field today.

Two ideas run through every module. First, separation of concerns: web application users and enrolled employees are kept as distinct concepts throughout the system, so a person can exist as an employee on the device side while a separate account controls their access to the web application — a security guard’s fingerprint template and an HR administrator’s login are never the same object. Second, traceable synchronization: nothing is pushed to a terminal, and nothing is pulled back from one, without the platform recording what happened, when, and whether it succeeded.

The result is a system that a facility manager, an HR lead and a payroll accountant can all open at the same time, each seeing the slice of the same employee record that matters to their role — without waiting on each other or re-entering the same data twice.

Employee lifecycle

  1. Biometric enrollment
  2. Device assignment
  3. Synchronization
  4. Attendance collection & calculation
  5. HR & contracts
  6. Payroll & payslips

Every stage writes back to the same employee record — nothing lives in a separate silo.

Core Modules

Eight modules, one platform

Each module below is a fully working part of the application today — not a roadmap item. Together they cover the operational surface of a modern workforce: the people, the hardware they touch, the hours they work, and the pay they earn.

Dashboard

Centralized operational command center for workforce, devices, biometrics, attendance, HR and payroll — the first screen every role sees after login.

Employee Management

Core and extended HR profile data, kept separate from device-syncable identity fields, so hardware sync never touches sensitive HR records by accident.

Biometric Management

Fingerprint and face template storage, enrollment, and controlled device synchronization, with vendor-aware template families.

Device Management

Centralized biometric device fleet management with cached identity, live diagnostics, and grouped operational actions.

Attendance

Automated time & attendance calculated from real device logs, shifts, leave and holidays — not manual timesheets.

HR

Organization, contracts, documents, disciplinary records and loans in one workforce center, tied back to the same employee.

Payroll

Salary components, overtime, deductions, loan installments and approvable payslips, generated from the same attendance data.

Access Control

Device groups, employee groups and schedules combined into enterprise access policies, distinct from attendance shifts.

Employee Experience

One employee, one connected record

The employee workspace is organized around five tabs — Overview, HR & Personnel, Attendance, Payroll, and Access & Devices — so every team touches the same record instead of five different exports of it.

Open any employee and the Overview tab already surfaces what most conversations about that person start with: a 30-day attendance snapshot, recent punches, approved leave days, accrued overtime, the current contract, salary and loan indicators, disciplinary indicators, the latest payslip, HR documents, device assignments and biometric enrollment status. A manager doesn’t need five different exports to answer “is this person set up correctly” — the answer is on one screen.

Employee Profile Biometrics Device Assignment Attendance HR Payroll
Employee workspace showing profile, employment details and quick navigation to attendance, HR and payroll
Device fleet view listing biometric terminals with health status, model and network information
Device Management

Centralized biometric device fleet management

Cached identity and capability data is shown for every terminal — name, vendor, IP, port, model, serial number, firmware version, MAC address, time zone and connection status — without connecting to every device on every page load. The UI shows what was last confirmed; the operator decides when to refresh it live.

The device workspace was deliberately redesigned around what an operator actually needs first: identity, network and status up top, operational actions grouped together, and low-value vendor telemetry pushed into an advanced section instead of competing for attention.

  • Connection test, ping and health check
  • Refresh device information and capabilities
  • Reboot, read card, download users and access/attendance logs
  • Full-row clickable fleet view with grouped operational actions and compact action menus

Capability discovery is vendor-specific; available actions depend on the connected device model and SDK — the platform never presents an action a device cannot actually perform.

Biometric Management

Fingerprint & face templates, handled correctly

Biometric data is treated as its own asset class: every template is stored with its modality, template type, group, capture source, quality, source device and capture timestamp — not as an anonymous blob attached to an employee ID.

UBio integration

Native UBio hardware enrollment is preserved as-is for fingerprint capture — the platform does not replace the vendor’s own enrollment dialog with a browser-based imitation. For UBio X‑Face family devices, the platform distinguishes Face Premium, Face Pro, Face WalkThrough and generic face templates by family — so one employee can hold both a Face Pro and a Face Premium template without either overwriting the other, because upload logic filters templates by the target device’s family before sending anything.

For WalkThrough-class enrollment, the platform uses the dedicated WalkThrough registration path rather than treating it as a generic face capture — the captured template, image and metadata are stored and synchronized as their own type.

Card serial number reading is supported from card-capable UBio terminals, with duplicate-card validation across employees. A known UBio timing quirk — where a card-serial callback can briefly report invalid data before the same card event becomes available through the realtime log — is handled by waiting for the realtime data instead of failing the read immediately.

IDEMIA integration

The IDEMIA integration is isolated behind a dedicated provider built on the MA5G Thrift SDK, with its own connection manager, session manager, capability probing and exception translation — the web UI never calls the vendor SDK directly.

Biometric templates are handled through the IDEMIA user-database fields: retrieval, local storage, upload and local/device comparison, using the employee code as the device-side user identifier where applicable.

Card technologies exposed by the IDEMIA SDK (such as ISO14443/MIFARE-family, HID Prox or ISO15693) are recognized where the connected device and SDK support them. Integration work also exists for MorphoWave-class and VisionPass-class devices; feature support there depends on the specific device model and verified SDK capability rather than being assumed uniform across the whole product line.

Local template deletion and device-side deletion are treated as distinct operations. The platform does not advertise device-side biometric deletion where no verified, safe vendor API exists for it.

Employee biometric templates screen showing stored fingerprint and face template metadata
Synchronization

Controlled synchronization, not silent overwrites

Every employee-to-device relationship carries a state — Not synced, Pending, Synced, Conflict or Error — so an operator always knows whether what’s on a terminal actually matches what’s in the central database.

Push & pull

Assign or unassign an employee to a device, sync a single employee, or run a bulk sync across many employees and many devices at once — including downloading employee data back from a device for comparison.

Conflict handling

When the central record and the device record disagree, the platform surfaces it as a conflict rather than picking a winner automatically. The operator resolves it explicitly: keep local, keep device, or remove the employee from that device.

Full history

Every push, pull, enrollment and conflict resolution is recorded with a status of success, conflict or error — an operational synchronization history, not a full immutable audit ledger, but enough to answer “what happened to this employee’s data, and when.”

Synchronization history log showing push, pull and enrollment operations with status
Daily attendance screen with first-in, last-out and worked minutes per employee
Attendance

Automated time & attendance with real device data

Logs synchronized from connected terminals flow into a calculation engine that accounts for shifts, cross-midnight schedules, breaks, grace periods, working days, holidays and approved leave — the same inputs an experienced attendance officer would check by hand, computed consistently every time.

Raw device events are kept visible and separate from the calculated attendance records they produced, so a disputed day can always be traced back to the exact punches behind it.

  • First-in / last-out, worked minutes, lateness, early departure and overtime
  • Shifts with cross-midnight logic, breaks and grace periods
  • Holiday calendar and leave management, both feeding the calculation directly
  • Authorized manual adjustments with a recorded reason, never a silent edit

Live monitoring reflects locally synchronized device events near real time — it is not a cloud CCTV-style livestream.

Attendance Operations

Shifts, leave, holidays and overtime — connected, not separate spreadsheets

Shifts

Start/end times, cross-midnight handling, break duration and grace periods per shift.

Leave

Type, start/end date, status and reason — approved leave is factored into attendance automatically.

Holidays

Paid or unpaid, with notes, and applied across the attendance calculation for every affected employee.

Overtime

Minutes, status and reason, normalized and ready to be picked up directly by payroll.

HR dashboard showing organization, employee directory and workforce indicators
HR

An enterprise workforce management center

Branches, departments (with parent/child structure), job titles (with grades) and manager hierarchy sit alongside contracts, a centralized HR document registry, disciplinary records and employee loans — kept separate from the hardware-facing employee fields, so a change to someone’s national ID never has to touch a biometric terminal.

  • Contracts: type, start/end date, probation end date and basic salary
  • HR document registry with document number, issue and expiry dates
  • Disciplinary records — date, type, amount and notes — optionally linked to payroll deductions
  • Loans with principal, monthly installment, remaining balance and start date

The HR document registry stores and tracks documents; it does not perform OCR, AI extraction, digital signatures or e-government verification.

Payroll runs screen with draft and approved payroll periods
Payroll

From attendance to payslip, without re-entering a single number

Payroll generation combines basic salary, configured salary components (earnings and deductions) and attendance-derived overtime, then subtracts disciplinary deductions and active loan installments, to produce net payroll for the period.

Basic Salary+ Earnings+ Overtime Deductions Disciplinary Loan Installments= Net Payroll
  • Salary components configured as earnings or deductions per employee salary line
  • Draft and approved payroll runs, with approval restricted to authorized roles
  • Payslips per employee, per run, showing basic, earnings, overtime, deductions and net
  • CSV export and manual payroll adjustments where required

Payroll logic reflects the platform exactly as implemented; no country-specific tax-law compliance is claimed for any jurisdiction.

Access policy screen combining device groups, employee groups and schedules
Access Control

A real enterprise access-policy model

Device groups and employee groups combine with access schedules — start/end time, days of week, relay duration and grace period — into prioritized, active/inactive access policies. A policy is not a single rule; it is the intersection of who, where, and when.

The platform preserves raw access and attendance events collected from terminals for diagnostics, while clearly distinguishing them in the UI from the attendance-calculated records they feed into.

Access schedules are a distinct concept from attendance shifts and are never merged in this platform — a door can open on a schedule that has nothing to do with when payroll considers someone “on shift.”

Access Control Building Blocks

Groups, schedules, policies

Device Groups

Terminals grouped by area, building or function, so a policy can target “all warehouse doors” instead of one device at a time.

Employee Groups

Employees grouped by role, shift pattern or clearance level, independent of the org chart.

Access Schedules

Start/end time, days of week, relay duration and grace period — the “when” that a policy applies.

Device and employee groups screen used to build access policies
Integration Ecosystem

Current integrations vs. extensible architecture

The platform uses a provider/adapter architecture — a single get_provider(vendor) entry point — so business services stay vendor-agnostic. Two vendors are live today; the architecture is designed to extend to more without rewriting the modules built on top of it.

Current / Implemented
  • IDEMIA — MA5G Thrift SDK, connection & session management, capability probing, RPC diagnostics
  • UBio / UBio X‑Face — UCSAPI40.dll server/callback SDK architecture (SDK server on port 9003)
Architecturally Ready / Future
  • Suprema
  • PERCo
  • HID
  • VirDI
  • NITGEN — integration code and an AccessManager Professional Server SDK package are present in the architecture but currently disabled

Future vendors listed above are not currently live integrations, and none of them should be read as “fully integrated.” Feature support for any vendor — current or future — depends on the connected device model and verified SDK capabilities, not on the brand name alone.

Architecture

Built in layers, on purpose

Presentation / Routes Services Repositories / Domain Provider Abstraction Vendor Integration Hardware / SDK

The web UI never calls vendor SDKs directly. A single provider abstraction — get_provider(vendor) — routes business services to the correct vendor-specific implementation, keeping hardware detail out of presentation logic entirely. That boundary is what lets the same attendance, HR and payroll modules work unmodified whether the terminal behind them is an IDEMIA unit or a UBio unit.

Organizationally, the platform models Company → Site → Building → Floor → Device, so multi-site deployments are represented natively rather than bolted on. A device can also exist without a complete location hierarchy, for deployments that simply track IP and port connectivity.

Error handling follows the same separation principle: end users see short, professional messages, while operators and developers can inspect the underlying RPC, vendor exception, SDK information, stack trace, device context and operation context — an enterprise troubleshooting layer that doesn’t leak technical noise into the daily user experience.

Security

Enterprise security & role-based access

Every action in the platform is checked against the signed-in user’s role, enforced server-side — not just hidden from the interface.

Admin

Full administration, user management, enterprise configuration and sensitive actions.

Operator

Operational employee, device, attendance and HR actions according to assigned permissions.

Viewer

Read-only operational visibility where permitted — for stakeholders who need to see status without the ability to change it.

Authentication uses server-side session enforcement with role-based authorization. SSO, SAML, OAuth federation, MFA and Active Directory integration are not claimed as current capabilities.

License Tiers

Start where you need to, grow when you’re ready

The platform architecture supports three feature tiers, so a deployment can start with access and biometrics and expand into full workforce management later, without a platform migration.

Lite

Core platform, Access Control and Biometric Management.

Premium

Everything in Lite, plus the full Attendance module.

Enterprise

Everything in Premium, plus HR and Payroll — the complete workforce platform.

Pricing is configured per deployment; contact STC for a quotation tailored to your device fleet and headcount.

Why STC

Delivered by the integrator, not just a software vendor

STC – Star Technology is a systems integrator that designs, supplies, installs and maintains the biometric and access-control hardware this platform manages — which means the software and the terminals are supported by the same team.

One accountable team

The people who install your terminals are the same people who can explain why the software behaves a certain way with them.

Field-tested engineering

Vendor-specific quirks — like UBio’s card-callback timing — were found and handled because the platform runs against real hardware, not simulators.

Honest scope

Every capability on this page is labeled current or future — nothing is presented as ready before it actually is.

FAQ

Frequently asked questions

Which biometric vendors are actually supported today?

IDEMIA (via the MA5G Thrift SDK) and UBio / UBio X‑Face (via UCSAPI40.dll) are the current, verified integrations. Other vendors listed in the Integration Ecosystem section are architecturally supported but not yet active.

Is NITGEN available?

NITGEN integration code exists in the architecture, including an AccessManager Professional Server SDK package, but it is currently disabled and is not presented as an active production integration.

Does deleting a biometric template in the app delete it from the device?

Not necessarily. Local deletion and device-side deletion are treated as separate actions, and device-side deletion is only offered where a verified, safe vendor API exists for it.

Can the platform handle multiple sites and buildings?

Yes — the location model is Company → Site → Building → Floor → Device, and devices can also exist without a full hierarchy for simpler IP/port-only deployments.

Does payroll calculate taxes for my country?

Payroll logic reflects exactly what is implemented in the platform. No country-specific tax-law compliance is claimed, and this should be verified against your jurisdiction’s requirements before go-live.

Is the interface available in Arabic?

Yes, the application interface can be switched between Arabic and English.

Ready to see it running on your sites?

Talk to STC – Star Technology about a demo or a technical consultation tailored to your device fleet and workforce.

slot gacor slot gacor situs slot gacor situs slot gacor slot gacor slot gacor

Categories:

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *