The bank's letter-management system creates, authorizes, and prints customer balance and advance letters. It ran on an end-of-life WebForms platform. AEGIS rebuilt it on a modern, secure architecture and kept its business logic exactly as it was.
At a Glance
| Metric | Result |
|---|---|
| SQL injection sites closed | 156 |
| Automated tests added | 677+ (previously: none) |
| Data migration required | 0 — database untouched |
| REST endpoints | 53 across 7 controllers |
Key Transformations
- Architecture overhaul: The monolithic code-behind and a single ~7,367-line data-access class were broken up into Clean Architecture layers (API / Application / Core / Infrastructure / Web).
- Frontend rebuild: The page-centric WebForms UI was replaced with a React 19 SPA (TypeScript, Vite, Tailwind CSS, TanStack Query) backed by 53 REST endpoints.
- Security hardening: The 156 SQL-injection sites, previously guarded only by a fragile runtime keyword blacklist, were closed with parameterized queries, which make injection structurally impossible.
- Modern authentication: Server-side session state was replaced with stateless JWT bearer tokens and a React auth context. The existing trust boundary stayed (the HTTP-referer check, now configurable per environment).
- Deterministic workflow engine: An opaque, inconsistent status column was replaced with a state machine built from atomic fields and a whitelist of valid transitions.
- Cloud-native deployment: Manual IIS hosting was replaced with two Docker images (API and web) deployed via Kubernetes across DEV/UAT/PREPROD, with secrets moved to a managed store.
- Zero-risk database strategy: The IBM DB2/AS400 core-banking database was left untouched: same schemas, same tables, no data migration. That removed an entire class of cutover risk.
Business Logic Preserved Verbatim
- Letter lifecycle: Draft → Initiated → Approved → Printed (with Reprint and Decline paths)
- Dual control: the creator of a letter cannot approve it
- Fee collection and waiver-reason rules
- Signatory eligibility rules
- Customer auto-population and property-data re-use
- Branch-specific industry handling
Why It Matters
Legacy modernization doesn't have to mean behavioral risk. The team treated the legacy system as the authoritative specification and validated equivalence with an automated feature-parity test suite instead of manual QA sign-off. The result was a like-for-like behavioral rebuild on a modern, scalable, secure stack.
Reference material. Prepared by EWIS AEGIS.
