If you want to become productive quickly, read these in order:
- PROJECT_OVERVIEW.md
- ../FAQ.md
- ../02_ARCHITECTURE/SYSTEM_ARCHITECTURE.md
- ../02_ARCHITECTURE/DATA_FLOW_END_TO_END.md
- ../02_ARCHITECTURE/CANONICAL_MODEL.md
- ../02_ARCHITECTURE/MERGE_AND_RECONCILIATION.md
- ../04_MAPPING_AND_FORMATS/PDF_FIELD_MAPPING.md
- ../04_MAPPING_AND_FORMATS/CANONICAL_TO_ESX_MAPPING.md
- ../06_CONTRIBUTING/CODEBASE_TOUR.md
| Area | Read first |
|---|---|
| UI and desktop behavior | ../02_ARCHITECTURE/UI_ARCHITECTURE.md |
| PDF ingestion or OCR | ../02_ARCHITECTURE/PDF_INGESTION_FLOW.md, ../02_ARCHITECTURE/OCR_AND_SCAN_STRATEGY.md |
| parser quality | ../02_ARCHITECTURE/PARSING_PIPELINE.md, ../06_CONTRIBUTING/HOW_TO_ADD_NEW_PARSERS.md |
| canonical model and merge behavior | ../02_ARCHITECTURE/CANONICAL_MODEL.md, ../02_ARCHITECTURE/MERGE_AND_RECONCILIATION.md |
XML and .esx output |
../02_ARCHITECTURE/ESX_GENERATION_FLOW.md, ../06_CONTRIBUTING/HOW_TO_IMPROVE_ESX_OUTPUT.md |
| debugging and tests | ../05_TESTING_AND_DEBUG/DEBUGGING_GUIDE.md, ../05_TESTING_AND_DEBUG/TESTING_STRATEGY.md |
- Set up the local environment.
- Run the app once.
- Run the unit tests once.
- Read the codebase tour.
- Pick one subsystem before changing any code.
From the repo root:
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txtOptional clean-environment smoke:
.\scripts\Verify-Clean-Environment.ps1.\scripts\Run-App.ps1Alternative:
.\.venv\Scripts\python.exe .\run_app.py.\.venv\Scripts\python.exe -m unittest discover -s tests -v
.\.venv\Scripts\python.exe -m compileall src run_app.py tests- the parser/export separation
- deterministic output naming and XML structure
- clear user-facing errors for bad PDFs and bad output paths
- post-write ESX package validation
- the canonical estimate as the exporter input contract
- add or refine metadata patterns for real carrier layouts
- improve OCR-heavy line-item parsing
- add fixture-based regression tests
- improve export assumptions where backed by real ESX evidence