Getting started
Invoice Review
Build a hybrid invoice and receipt review app on Azure with Document Intelligence, Azure OpenAI, FastAPI, React, and SQLite, from client brief to Container Apps deployment.
Invoice Review is a finance-review application for Northstar Facilities B.V., a fictional facilities-management company in Amsterdam. A finance administrator uploads a European supplier invoice or an employee expense receipt. Two Azure services extract the contents independently, deterministic code merges the results and checks them against company policy, and a person makes the final call. Approve, reject, or send the supplier a correction request.
This handbook is the written companion to the video. It contains everything from the video plus the commands, checkpoints, and deeper explanations, so you can keep it open next to the video and copy from here instead of pausing.
The whole system fits in one picture. Two Azure services extract, deterministic code merges and judges, and the result comes back to a human:
Every stage of the build fills in one part of this picture, and by the deployment stage the whole thing runs on Azure Container Apps.
What you'll build
By the end you have a complete application running on Azure:
- An Azure AI Foundry model deployment and a Document Intelligence resource, provisioned from the command line and verified end to end before any application code exists
- A hybrid extraction pipeline where Document Intelligence stays primary and Azure OpenAI classifies the document, fills missing fields, and suggests a general ledger account, with visible provenance for every value
- Deterministic finance rules in plain Python that check VAT numbers, totals, dates, and duplicates, because models extract evidence but code decides policy
- A FastAPI backend with SQLite persistence and a React review portal built around the reviewer's workflow
- A live deployment on Azure Container Apps, one container serving both the API and the frontend, with the database on an Azure Files share
The project is also a deep dive into Azure itself. You create an account with free credits, work with the Azure CLI instead of clicking through the portal, and learn what resource groups, tiers, and regions actually mean when you provision real services.
Not a beginner course
This build moves at a natural working pace and uses AI coding agents throughout. You should be comfortable with Python, some TypeScript, and the command line. If you are new to Python, start with the free Python course first.
The repository
daveebbelaar/e2e-invoice-review
The repo has three branches:
mainis the ready-to-build starter and the default branch. Clone it to follow this handbook.developmentis the public working branch, including later experiments.solutionis the reviewed finished application shown in the video.
Use the starter when you want to build each boundary yourself. Open the solution branch when you need to compare your work with the finished result.
If you go straight to the final result you end up with a cool project, but you will not really learn anything. The value is in building it up stage by stage.
How to follow along
Each stage in the sidebar matches a phase of the build. Every page starts with the outcome, explains why the stage exists, walks through the steps and the important decisions, and ends with a checkpoint you can verify before moving on. The handbook shows the steps and the reasoning rather than every line of code. The code lives in the repo, and writing it is what the video is for.
Dave builds the whole project with an AI coding agent and dictates nearly all of his prompts instead of typing them. The dictation bar you see popping up in the video is Glaido, and it is the fastest way to keep up with a build like this.
Glaido is the #1 dictation tool for developers, and the one Dave uses throughout the video.
Try Glaido freeYou do not need to understand every line immediately. The goal is to see how the cloud services, extraction pipeline, business rules, backend, frontend, and deployment fit together as one system. Keep asking how things work until you understand them from first principles.