ARCTIC connects customer requests and technician assignment to work orders, equipment, and billing. It starts from requirements gathered from a real company. The client project did not proceed further; the portfolio implementation is complete for its current scope.
Make job progression explicit. A shared transition map permits the documented job states in order. Completed and cancelled jobs are terminal through the ordinary status flow, so a normal edit cannot silently reopen work. The stricter flow limits ad hoc status edits in exchange for a predictable lifecycle. Related source See work-order details
Opens sign-in. Explore demo workspace reaches the public synthetic dashboard in the October 21, 2026 check. The gallery below retains its recorded local captures.
Inside the application
Inside ARCTIC.
Captions identify the workflow and the screenshot's source or demo context.
01Dashboard · Local seeded demo with synthetic service records · Captured October 8, 2026.02Completed work-order details · Synthetic service record in the local demo · October 8, 2026.03Invoices and payments · Synthetic collection records in the local demo · Captured October 8, 2026.
System shape
How the pieces connect.
The interface supports branch workflows; the API applies organization and branch checks before data access.
Application request path
React + TypeScript
Express API + scope checks
Prisma
PostgreSQL
Roles and scope
Who can do what.
These are the application's two account roles. A technician is an assignee, not a third sign-in role; technician and booking must share a branch.
ADMIN
Organization-wide view across branches.
BRANCH_LEADER
Reads and writes stay within the user's assigned branch.
Staff record service requests for a customer, site, branch, and unit.
A job is scheduled and assigned to a technician in its branch.
The work order records inspection outcomes before completion.
An invoice follows completed work; collections and receipts are recorded separately.
Managers review jobs, stock, maintenance, and balances by branch.
Engineering choices
Further decisions
Enforce organization and branch boundaries
Server-side queries and writes check the organization, branch, and related records. The workflow does not rely on the interface alone to hide another branch’s data. This adds scope validation to each operation in exchange for enforcing the boundary on the server.
Amounts use fixed-precision decimal fields. Payment moves through unpaid, partial, and paid states; a refund requires its own recorded workflow rather than resetting a paid invoice. Separate records add bookkeeping but preserve how a balance changes.
The published record reports 29 unit tests passed, 12 database tests skipped in that mode, and 41 integration tests passed against an isolated PostgreSQL database. It also documents the production migration and smoke checks; no production user account was used.
Local synthetic captures from October 8, 2026 show the dashboard, a completed work-order detail, and invoices. These are separate from the hosted application's current access state.
The client project did not proceed further; no completed client delivery or production adoption is claimed.