Angular approval workflow console
A server-authoritative Angular approval console with role-scoped queues, guarded state transitions, optimistic versions, idempotent commands, and hash-linked case history.

Project definition
Problem statement
Approval systems combine request facts, role authority, current workflow state, deadlines, comments and irreversible human decisions.
A visible button is not authorization. The server must reject wrong-role, wrong-state, self-review, repeated and stale commands while retaining inspectable evidence.
Project objectives
- Model a versioned workflow with explicit states, transitions, roles and guards.
- Present assigned work, the complete selected case and chronological history in one readable console.
- Enforce role, state, resource, requester-conflict and separation-of-duty rules on the server.
- Protect decisions with optimistic versions, semantic idempotency and atomic persistence.
- Measure permission agreement, repeated lifecycle correctness, evidence integrity, coverage and local queue scaling.
Project structure
Project components
Approval console
Keeps the role-scoped queue, complete case, available decisions and ordered history visible in three persistent columns.
Workflow engine
Validates definition structure and evaluates fields, source state, role, requester conflict, prior actors, comments, amounts and expected versions.
Fastify API
Authenticates every protected request, rejects additional properties, applies resource scope and returns stable error outcomes.
SQLite store
Commits the conditional case update, event record and idempotency response in one transaction.
Evidence chain
Links ordered approval events with SHA-256 digests and verifies the retained sequence.
Verification laboratory
Runs core, API, component and browser tests together with permission, lifecycle, audit and queue experiments.
Methodology
Project workflow
- 01Open assigned work
A prepared reviewer sees only cases assigned to the active role and workflow state.
- 02Inspect the complete case
The console presents requester, department, purpose, supplier, amount, risk note, due state and current version.
- 03Apply a guarded decision
The API repeats authorization and validates the expected version, required comment and transition-specific rules.
- 04Commit and refresh
SQLite updates the case and replay evidence atomically, then Angular reloads the queue and selected record.
- 05Verify the history
The right column displays ordered events and the current hash-chain verification result.
Demonstration scenario
A department reviewer recommends a synthetic research request, a different finance reviewer clears its budget, and a committee chair who performed neither earlier review approves it. The queue changes after every decision and the complete verified history remains visible.
Engineering
Tools and method
- Angular application
- Standalone Angular 22 components, strict TypeScript, signals for local view state and RxJS for HTTP request chains.
- Authorization model
- One shared assessor supports client action discovery while the Fastify route remains authoritative for execution.
- Concurrency and replay
- Expected case versions prevent stale approval and actor-scoped idempotency keys bind to the complete semantic command.
- Persistence
- Indexed SQLite case fields, JSON payloads, conditional updates, transactions, write-ahead logging and hash-linked events.
- Delivery
- Locked pnpm dependencies, production secret guards, a non-root Docker image and GitHub Actions for all quality gates.
Testing
Evaluation
Evaluation measures
- 42 of 42 role-state permission cells match independently declared expectations
- 100 of 100 repeated four-stage approval lifecycles complete
- 100 of 100 resulting event chains verify
- 86 core and API tests with 96.55 percent line and 89.69 percent branch coverage
- Three Angular component tests and three Chromium workflows
- Queue filter and sort observations for 100, 1,000 and 5,000 prepared records
Project boundaries
- All actors, requests, organisations and amounts are synthetic.
- The prepared role selector is a local demonstration bootstrap, not production authentication.
- SQLite and local hash-linked evidence do not provide multi-instance storage or independent tamper prevention.
- Institutional deployment requires trusted identity, tenant policy, workflow governance, TLS, rate limiting, external logging, backups, privacy review and accessibility testing.
Included
- 01Three-column approval console, strict workflow engine, transactional API, SQLite evidence store, experiments, and test suite
- 02Prepared sample data and demonstration scenarios
- 03Automated tests and measured results
- 04Complete source code in a private GitHub repository
- 05Complete project documentation in PDF and editable Word formats with synopsis, abstract, methodology, architecture diagrams, test results, screenshots, and conclusion
- 06Setup and usage guide
Project record
No information is collected on this page.
- Permanent project ID
- GP-CS-0JG4OFE
- Catalogued
- 21 Aug 2026
- Completed
- 25 Aug 2026
- Verified
- 25 Aug 2026
- Demonstration
- Included in repository
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.