Sample invoice
Source preview
| Description | Qty. | Amount |
|---|---|---|
| Controller modules | 4 | $840.00 |
| Calibration kit | 1 | $340.00 |
- Subtotal
- $1,180.00
- Tax
- $94.40
- Total
- $1,274.40
Selected work / Local browser demo
Portfolio demoChoose a fictional invoice to see preset fields checked against rules. This demo does not read uploaded files or run OCR.
The scenario
Invoice data needs checks for missing fields and inconsistent totals before it can be used in an accounting system.
Choose a fictional invoice to see preset values checked against rules, with review flags and a JSON preview. The demo does not read files, extract text, or connect to an accounting system.
The fields here come from built-in examples. A real document workflow would need an extraction method and a way for people to review uncertain values.
Interactive demonstration
This demo runs in your browser with fictional data and scripted results. It does not send messages or connect to external services.
Interactive portfolio demo
Uses preset invoice data in your browser. No upload, OCR, AI extraction, or export takes place.
Loads preset fields, checks totals and the purchase order, then shows a sample destination.
Sample invoice
| Description | Qty. | Amount |
|---|---|---|
| Controller modules | 4 | $840.00 |
| Calibration kit | 1 | $340.00 |
Structured data
Run the demo to see the preset fields and check results.
Technical case study
The same TypeScript validator drives the demo and its tests. It checks line items against the final total and checks the stated subtotal plus tax separately.
Invoice B’s $1,410 subtotal plus $112.80 tax matches its stated $1,522.80 total. Its line items total $1,280, making the amount with tax $1,392.80. The separate line-item check catches the $130 mismatch.
The interface announces the final status and reason, and clears the previous result when another sample is selected.
AI assistance was used for this revision and review. The example uses fictional data; uploads, OCR and accounting connections would need separate implementation.
: 16 invoice-validator tests passed. Local browser checks covered all three outcomes, sample reset, the JSON toggle and workflow layout at seven viewport widths from 320 to 1440 pixels. Lint, TypeScript checking and the production build also passed.
Screen-reader speech and Linux browser rendering were not tested. The live-region structure was checked in headless Chrome on macOS; this is not a full accessibility audit.
Demo workflow
The demo checks the purchase-order field and invoice arithmetic, then shows a review status and JSON preview.
Design considerations
The demo shows inputs, rule checks, and result states. The notes below distinguish the local example from requirements for a real integration.
The demo selects one of three built-in invoice examples. It does not accept uploaded files.
The fictional invoice values are represented as typed fields. They are not extracted from a document.
The examples use the same field structure for dates, currency, vendor details, and purchase-order references.
The demo checks whether the preset invoice includes a purchase-order number.
The demo compares line items plus tax with the total, and checks the stated subtotal plus tax separately.
The result displays a review status and reasons when the sample fails a check. It does not create a real review task.
Reliability considerations
In a real workflow, extracted values would need rule checks and review before use.
A real implementation would retain the source file, extracted record, validation outcome, and any overrides.
The missing-PO sample produces a review flag and explains which field needs attention.
Storage, access control, retention, and encryption should be chosen around the sensitivity of the documents involved.
Beyond the demo
A live integration would require provider-specific development, account access, secure data handling, and tests for failure and recovery. These requirements are not implemented by the browser demo.
Interested in the code or a website project?