HR operations platform
Advance HRIS
A hybrid HR information system with an employee web portal, a native HR/admin desktop console, tenant-scoped access, policy-backed leave, schedule-aware attendance, audit history and durable offline synchronization.
Product work and architecture overview by Savi Saluwadana.
What it does
- Who it serves
- Employees, managers, HR teams and administrators.
- Product purpose
- Hybrid web and local-first desktop HR operations.
- Employee records, tenant scope and role-aware self-service.
- Policy-backed leave and schedule-aware attendance.
- Audit history and durable offline desktop synchronization.
How it works
- Employees and managers use the Next.js portal for self-service.
- HR/admin users can work through the Wails desktop console and local SQLite storage.
- The durable sync queue sends authorized operations to the Go API.
- PostgreSQL remains the authoritative system of record; synchronization handles conflicts explicitly.
Architecture
Next.js Web + Wails / React Desktop → Go API → PostgreSQL
| Component | Responsibility |
|---|---|
| Next.js portal | Employee and manager self-service through a web session/BFF boundary. |
| Wails desktop | Native HR/admin console with encrypted local payloads. |
| SQLite + sync queue | Local state and durable synchronization operations. |
| Go + PostgreSQL | Tenant-scoped business rules and authoritative HR records. |
Current scope
Local-first refers to the desktop console. The cloud database remains authoritative. Payroll-ready attendance boundaries do not mean a complete payroll-processing product is included.
Architecture summary reviewed . Repository documentation.
Contributor notes
Run locally
Configure .env from example; docker compose up --build (demo setup)
Design decision
Cloud HR data is authoritative; the desktop uses a local store and sync queue.
Trade-off
Offline operation adds synchronization, conflict resolution and local-data protection concerns.
Unfinished
Default Compose is demo-only; full payroll and production layers remain unfinished.
Licence: No licence identified