← Back to docs hub

Module File Map

Browsable HTML view of the traceability map linking every legacy source file to the modernization modules it supports. Derived directly from the deployed source-of-truth repo.

Generated: 2026-04-15 | Source markdown: docs/module-file-map.md

How to read this map

Source note: The canonical machine-readable map lives in CARD-DEMO/docs/module-file-map.md; this HTML view is kept in sync but may present fewer cross-cutting rows than the Markdown.

account-listing

LayerFileRole
cobol-batchapp/cobol/CBACT01C.cblSequential account reader; emits ACCT01|... lines when CB_STREAM=1.
cobol-copybookapp/cobol/CVACT01Y.cpyACCOUNT-RECORD layout (300 bytes).
python-flaskapp/bridge.pyget_all_accounts / get_account parse the CBACT01C stream.
python-flaskapp/app.pyaccount_list() route (GET /).
templateapp/templates/accounts.html9-column account table linking to detail and update.
templateapp/templates/base.htmlShared CICS/BMS chrome used by every template.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/acctdata.txtSource data read by CBACT01C.

account-details

LayerFileRole
cobol-batchapp/cobol/CBACT01C.cblReader for the single account record.
cobol-batchapp/cobol/CBACT02C.cblCard reader emitting CARD01|... lines.
cobol-batchapp/cobol/CBACT03C.cblXref reader emitting XREF03|... lines.
cobol-batchapp/cobol/CBCUS01C.cblCustomer reader emitting CUST01|... lines.
cobol-copybookapp/cobol/CVACT01Y.cpyAccount layout (300 bytes).
cobol-copybookapp/cobol/CVACT02Y.cpyCard layout (150 bytes).
cobol-copybookapp/cobol/CVACT03Y.cpyXref layout (50 bytes).
cobol-copybookapp/cobol/CVCUS01Y.cpyCustomer layout (500 bytes).
python-flaskapp/bridge.pyget_account, get_cards_for_account, get_customer_for_account, xref_distinct_cust_ids_for_account, xref_cust_ambiguity_message.
python-flaskapp/app.pyaccount_detail() route (GET /account/<acct_id>).
templateapp/templates/account_detail.htmlAccount + customer + cards detail screen.
templateapp/templates/404.htmlFriendly "account not found" view.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/acctdata.txtAccount data.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/carddata.txtCard data.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/cardxref.txtXref data.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/custdata.txtCustomer data.

account-update

LayerFileRole
cobol-batchapp/cobol/CACTUPC.cblAccount update with validation (rc=0/1/2/3).
cobol-copybookapp/cobol/CVACT01Y.cpyAccount layout used by CACTUPC.
python-flaskapp/bridge.pyupdate_account, update_account_zip, _cobol_machine_err_code, _cobol_validation_message, _CACTUPC_ERR_HINTS_ES.
python-flaskapp/app.pyaccount_update() route (GET|POST /account/<acct_id>/update), _account_form_unchanged, _caup_customer_ui_parts, _caup_ssn_from_form, _caup_phone15_from_form, _money_eq_cobol.
templateapp/templates/account_update.htmlCAUP form (account + customer) with SSN / phone segmentation.
python-smokeapp/smoke_cactupc.pyRound-trip ZIP update through update_account (rc=0 expected).
python-smokeapp/smoke_cactupc_dates.pyExercises DATE_CAL and DATE_ORDER validation codes.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/acctdata.txtRewritten by CACTUPC after each successful update.

customer-management

LayerFileRole
cobol-batchapp/cobol/CCUSTUPC.cblCustomer update with the full validation set from CUSVALUS.cpy.
cobol-batchapp/cobol/CBCUS01C.cblCustomer file reader used for prefill and lookups.
cobol-copybookapp/cobol/CVCUS01Y.cpyCUSTOMER-RECORD layout.
cobol-copybookapp/cobol/CUSVALUS.cpyUS validation tables (NANP area codes, state list, state+ZIP combos).
python-flaskapp/bridge.pyget_all_customers, get_customer_by_id, update_customer, _CCUSTUPC_ERR_HINTS_ES.
python-flaskapp/app.pyCustomer portion of account_update(), _customer_form_unchanged, SSN / phone helpers.
python-flaskapp/mocks.pyLegacy mock customer personas (not imported at runtime today).
templateapp/templates/account_update.htmlCustomer section of the CAUP form.
python-smokeapp/smoke_ccustupc.pyRound-trip customer update with the first 500-byte record.
python-scriptscripts/fix_custdata_for_ccustupc.pyOffline helper that aligns custdata.txt bytes with stricter CCUSTUPC rules.
python-scriptscripts/gen_cusvalus_cpy.pyRegenerates CUSVALUS.cpy from the upstream copybook.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/custdata.txtCustomer data rewritten by CCUSTUPC.

card-crossref

LayerFileRole
cobol-batchapp/cobol/CBACT03C.cblXref reader (50-byte records) emitting XREF03|card|cust|acct.
cobol-copybookapp/cobol/CVACT03Y.cpyCARD-XREF-RECORD layout.
python-flaskapp/bridge.pyget_all_crossref, xref_distinct_cust_ids_for_account.
python-flaskapp/app.pycross_reference() route (GET /crossref).
templateapp/templates/crossref.htmlPlain xref table.
datalegacy/aws-mainframe-modernization-carddemo/app/data/ASCII/cardxref.txtXref data.

Cross-cutting infrastructure

LayerFileRole
containerapp/DockerfilePython 3.11-slim base, installs GnuCOBOL, compiles all six COBOL programs, installs Flask + Gunicorn, copies Flask sources and templates, default env + Gunicorn CMD + container health check.
containerapp/docker-compose.ymlBind-mounts ASCII data files, exposes port 5000, sets BRIDGE_DEBUG_UI=1 for the demo, container health check via /health.
configapp/requirements.txtflask>=3,<4, gunicorn>=21,<22.
configapp/.dockerignoreDocker build hygiene.
config.gitignoreTop-level ignore patterns.
python-flaskapp/bridge.pyCOBOL subprocess orchestration, stream parsing, overpunch decoding, error marker protocol, debug log buffer, CobolBridgeError.
python-flaskapp/app.pyFlask routes, error handlers (404, CobolBridgeError), CICS-style context processor, ibm_money template filter.
templateapp/templates/bridge_log.htmlDebug-only view of recent COBOL subprocess events.
docsCARD-DEMO/docs/system-overview.mdCanonical architecture + modernization contract (Markdown source of truth).
docsCARD-DEMO/docs/site/Human-facing HTML doc site published by cd-pipeline-card-demo.yml.
docsCARD-DEMO/modern/frontend/React + Vite scaffold. Left neutral so every demo run can regenerate the modernized UI from the template.