Features
A page-by-page tour of what AssetR does today.
Dashboard
Asset counts by status, upcoming warranty/license expirations, upcoming EOL dates, and low-stock accessories/consumables — all in one landing view. The headline number is Total Fleet Value: the sum of every asset's current book value (original cost minus straight-line depreciation under whatever schedule is assigned to that asset's model, or original cost alone if there's no schedule or purchase date on file). Depreciation schedules are simple by design — a name and a duration in months — good enough for internal tracking, not tax/accounting-grade. A breakdown dialog lists every asset's individual contribution — toggle between all assets or active-only — with its own CSV export.
Assets
Serialized assets (laptops, desktops, monitors, keyboards...) each get a unique auto-generated asset tag, an optional serial number, up to 3 photos, and a full status lifecycle: Available → Assigned → In Repair → Retired / Lost. Every checkout, checkin, status change, note, and repair appears in one combined history timeline per asset — no cross-referencing separate screens. A repair/maintenance log tracks supplier, cost, dates, and warranty-claim status. Dynamic custom fields — grouped into reusable fieldsets and attached per asset model — let you define exactly the specs a given model needs (RAM, MAC address, whatever's relevant), so the "add asset" form only prompts for fields that actually apply. A printable Code128 barcode label — company logo, barcode, asset tag, and model/serial — prints one at a time from an asset's own page, or in bulk for a whole selection from the assets list.
Software licenses
Track total seat count, purchase cost, and expiration date per license. Assign individual seats to an employee or lock one to a specific asset. A searchable, paginated seat list on the license's own detail page shows used vs. free at a glance, and expiry alerts surface both on the dashboard (30-day window) and in Reports (the full, uncapped list).
Accessories & consumables
Accessories (spare mice, keyboards — reusable stock) support quantity-based checkout and checkin against an employee. Consumables (cables, toner) are issued as a one-way decrement with no check-in, plus a restock action. Both alert automatically once available/remaining quantity drops to or below a configured minimum.
Employees & one-click offboarding
An employee's detail page shows everything currently assigned to them — assets, license seats, accessories — plus the full assignment history. When someone leaves, a single Offboard action previews exactly what it will do (e.g. “check in 3 assets, return 2 accessories, revoke 1 license seat”), then checks everything in, revokes every seat, and deactivates the employee record — all from one confirm.
Reports
Beyond raw CSV exports (assets with custom fields inlined, license seat usage, supplier usage), dedicated drill-down reports cover assets by location/category/manufacturer, employee assignments, the full license expiration list, and accessory/consumable activity — each independently searchable, paginated, and exportable.
Audit log
Every create/update/delete/checkout/checkin/repair/seat-assignment/admin action gets a permanent, sequential Audit Log No. that stays fixed regardless of current search/filter/sort — separate from the per-asset history timeline. Search by actor, entity, or a date range; export respects whatever filters are currently applied. Super Admin only.
Backups
Trigger an on-demand backup or schedule an automatic daily one at a time you choose, with optional retention (auto-delete older than N days, or keep forever). Download or delete individual backups — every backup action is itself audit-logged. Restoring is intentionally not a button: the app documents the manual command instead, since an automated restore is too risky to trust to a click.
Email notifications
A fixed daily check (08:00 server time) looks for expiring warranties, expiring licenses, and low stock, and emails an explicit, admin-managed recipient list — not automatically every admin account. A “Send test email” button on Settings verifies your SMTP configuration independent of that schedule.
Bulk import & export
Nearly every entity — employees, assets, licenses, accessories, consumables, and every org-lookup (locations, departments, manufacturers, suppliers, categories, depreciation schedules, custom fields) — supports CSV bulk import (rows that fail validation or duplicate an existing name are skipped and reported, not silently dropped) and one-click CSV export of the complete dataset, independent of whatever's currently on screen.
Admin accounts & roles
Two coarse roles keep permissions simple: Super Admin (everything) and Asset Manager (day-to-day management, no Settings/Backups/Audit Log). A super admin can create/deactivate other admins, assign roles, and reset passwords — the app always enforces at least one active Super Admin.
Single sign-on (SSO)
Connect one generic, standards-compliant OIDC identity provider — Microsoft Entra ID, Okta, Google Workspace, Auth0, Keycloak, or any other — from a “Single Sign-On” card on Settings: issuer URL, client ID, client secret, done. It authenticates existing admin accounts only, matched by verified email — it never auto-creates one, so there's no surprise access grant on first login. Local email/password sign-in stays available alongside it as a deliberate break-glass path if the identity provider is ever down.
Public REST API
A bearer-token authenticated REST API for scripting and integrations, narrower by design than the admin UI: read access across assets, employees, licenses, accessories, and consumables, plus the write paths that cover the two integrations most likely to actually get built — full employee lifecycle (create, update, one-click offboard) for HRIS sync, and asset/accessory checkout-checkin for a ticketing system. Departments get full CRUD too, and assets can be filtered by an employee's business-facing employee code, not just their internal id, so an integration doesn't need a separate lookup call first. Create and revoke keys from Settings, each with a role and an optional read-only flag; every write is audit-logged the same way a UI action would be. Full reference documentation — with a real example request and response for every endpoint, plus a one-click download of a ready-to-import Postman collection covering every endpoint — lives in-app once you're deployed.