From COBOL/GnuCOBOL + Python/Flask → React 19 modernized frontend (mock-backed demo)
Step-by-step plan to modernize the Account module from COBOL/Flask to .NET 8 & React.
| Phase | Task | Description | Owner | Status |
|---|---|---|---|---|
| 1 · Foundation | Repository & Solution Setup | Create .NET 8 solution with Clean/Vertical Slice structure and React+Vite frontend scaffold. | Platform Team | Pending |
| 1 · Foundation | Docker Compose Local Stack | Define docker-compose.yml for backend (.NET), frontend (React), and PostgreSQL 16 with hot-reload support. |
Platform Team | Pending |
| 1 · Foundation | EF Core Data Model & Initial Migration | Define Account, Card, CardCustomerXref, Customer entities. Run first EF Core migration. |
Backend Team | Pending |
| 1 · Foundation | i18n Scaffold (en + es) | Bootstrap i18next with en.json and es.json including all validation message keys from COBOL rule table. |
Frontend Team | Pending |
| 2 · Rule Extraction | Document CACTUPC Business Rules | Formalize all 11 account update rules (STATUS_YN, DATE_*, AMT_CHAR, CASH_GT_CREDIT, ZIP_DIG, ACCT_ID, GROUP_ALNUM) as C# Domain validators with unit tests. | Backend Team | In Progress |
| 2 · Rule Extraction | Document CCUSTUPC Business Rules | Formalize all customer update rules (CUST_SSN, CUST_ZIP, CUST_STATE, CUST_FICO, CUST_PHONE, CUST_DOB, PRI_HOLDER) as C# Domain validators with unit tests. | Backend Team | Pending |
| 2 · Rule Extraction | No-Change Guard Implementation | Replicate bridge.py change-detection logic: if submitted data equals current DB record, return NoChangesResult without persisting. | Backend Team | Pending |
| 3 · Data Migration | ASCII File to PostgreSQL Seeder | Write idempotent C# migration script to read acctdata.txt (300B), carddata.txt (150B), cardxref.txt (50B), custdata.txt (500B) and seed the relational DB. Validate row counts. | Backend Team | Pending |
| 3 · Data Migration | SSN Encryption | Implement field-level encryption for Customer.Ssn before migration. Legacy stored as plain 9-digit integer — never store in plaintext in new DB. |
Security Team | Pending |
| 4 · Backend | Implement GET /api/accounts |
Paginated account listing with optional filters (status, search). Replaces CBACT01C + Flask route. | Backend Team | Pending |
| 4 · Backend | Implement GET /api/accounts/{id} |
Full account detail: account fields + linked cards + linked customer (via XREF). Replaces CBACT01C, CBACT02C, CBACT03C, CBCUS01C + Flask route. | Backend Team | Pending |
| 4 · Backend | Implement PUT /api/accounts/{id} |
Account update with full CACTUPC rule validation. Replaces CACTUPC COBOL program. | Backend Team | Pending |
| 4 · Backend | Implement PUT /api/customers/{id} |
Customer profile update with full CCUSTUPC rule validation. Replaces CCUSTUPC COBOL program. | Backend Team | Pending |
| 4 · Backend | Implement GET /api/cards/crossref |
Paginated card-to-account cross-reference listing. Replaces CBACT03C + Flask route. | Backend Team | Pending |
| 5 · Frontend | Account List Page | React page with paginated MUI table, status filter, and search. Shipped in the template with Vitest unit tests. | Frontend Team | Done |
| 5 · Frontend | Account Detail Page | React page showing account info, cards panel, and customer panel with xref ambiguity warning. Shipped in the template with Vitest unit tests. | Frontend Team | Done |
| 5 · Frontend | Account Update Page | React form page with mock-backed update flow and minimal ZIP validation. Shipped in the template with Vitest unit tests. | Frontend Team | Done |
| 5 · Frontend | Card Cross-Reference Page | React page with searchable cross-reference table. Shipped in the template with Vitest unit tests. | Frontend Team | Done |
| 5 · Frontend | Customer Management (slot-in target) | Placeholder in the template. Each modernization demo replaces it with the full customer management experience (list, detail, update) + tests. | Frontend Team | Awaiting demo |
| 6 · QA & UAT | Unit Tests — Domain Validators | xUnit tests covering all 11 CACTUPC rules and 7 CCUSTUPC rules. Minimum 90% Domain layer coverage. | Backend Team | Pending |
| 6 · QA & UAT | Integration Tests — API Endpoints | WebApplicationFactory integration tests for all account and customer endpoints using seeded test database. | Backend Team | Pending |
| 6 · QA & UAT | UAT — Business Rule Parity | End-to-end validation that new system rejects/accepts the same inputs as the COBOL system, using legacy smoke test scenarios as reference. | QA + Legacy Expert | Pending |
| 7 · Cutover | Production Data Migration | Run idempotent migration script against production ASCII files. Validate record counts. Zero-downtime cutover plan. | DBA + Ops | Pending |
| 7 · Cutover | Decommission COBOL Bridge | Remove GnuCOBOL binaries, bridge.py, and Docker COBOL build steps. Archive legacy source code for reference. | Platform Team | Pending |
account-listing, account-details, account-update, card-crossref) with Vitest unit tests now ship on main. Each demo PR modernizes only customer-management, runs the shared test suite, and reports results on the PR dashboard.
cardDemo-modernization-sai3). Routes, COBOL programs, copybook shapes, validation codes, bridge protocol, and templates are now fully described in system-overview.md and module-file-map.md.
system-overview.md, module-file-map.md, docs/site/index.html, and all 5 module pages created. Business rules extracted from CACTUPC and CCUSTUPC COBOL sources.
HTML view of the canonical Markdown source for architecture, business rules, data models, APIs, and user story guidance.
canonical markdown viewHTML view of the canonical Markdown traceability map used for coverage attribution and automated analysis.
canonical markdown viewUS guide for the paginated account list. Replaces CBACT01C + Flask / route.
US guide for the full account detail view with cards and customer. Replaces CBACT01C/02C/03C/CBCUS01C.
module: account-detailsUS guide for account update with COBOL business rule parity. Replaces CACTUPC batch program.
module: account-updateUS guide for the card-to-account-to-customer cross-reference view. Replaces CBACT03C.
module: card-crossrefUS guide for customer profile updates with CCUSTUPC rule parity.
module: customer-management