All case studies

SpudWrench and Member Portal: Parallel Platform Modernisation for Iron Workers Union

Iron Workers needed a modern digital platform for members and administrators — without disrupting the legacy IWITS systems their operations depended on. We built a connected Member Portal and operational backbone (SpudWrench) designed to run alongside legacy systems, with Xpress Pay integration, role-based access across five user types, and full audit traceability.

ASP.NET MVC Member Portal Xpress Pay Integration Legacy Coexistence Role-Based Access
SpudWrench and Member Portal: Parallel Platform Modernisation for Iron Workers Union
About Iron Workers

A union membership ecosystem spanning headquarters, locals, and individual members.

Iron Workers operates a complex membership ecosystem that includes headquarters teams, local unions, administrators, staff, and individual members. Their business processes span member registration, profile management, certifications, payments, reporting, notifications, and synchronisation with long-standing legacy systems — all requiring careful coordination across a distributed organisational structure. The organisation relied on multiple legacy applications including IWITS (Iron Workers Information Technology System), with workflows distributed across old and new databases and dependent on periodic sync jobs and manual processes. Members had limited digital self-service, and operational workflows around certifications, payments, and reporting were difficult to standardise consistently. The goal wasn't a rip-and-replace. It was a phased modernisation — building new capabilities alongside legacy systems, gradually shifting workflows to a modern platform without risking the business continuity that members and administrators depended on.

Not a big-bang replacement — a phased modernisation designed to preserve continuity while improving experience, automation, and integration quality across the entire union ecosystem.
Project Profile

At a glance.

Client
Industry
Union / Membership Organisation
Stack
ASP.NET MVC
Platforms
Member Portal + SpudWrench
User Roles
5 Distinct Role Types
Industry
Union / Membership Organisation
Project Type
Platform Modernisation + Member Portal + Operational Backbone + Payment Integration
Tech Stack
ASP.NET MVC, ASP.NET Identity, service/repository/database architecture
Payment Integration
Xpress Pay — dues, initiation, reinstatement payments; invoice generation, receipting, status callbacks
Legacy System
IWITS — master sync and old-to-new sync processes for ongoing coexistence
User Roles Supported
Members, Local Users, Local Admins, International Admins, IT Admins
Engagement Journey

Member-facing → operational backbone → integrated payments.

The engagement was structured to build member-facing capabilities first, then the operational backbone, and finally the payment layer — each phase running in controlled parallel with legacy IWITS systems rather than requiring a risky full cutover.

Phase
Platform
Focus
Key Deliverables
Phase 1
Member Portal
Member self-service
Registration (member number + last name + email validation), email confirmation, password setup, ASP.NET Identity login, certification visibility, profile management, local union info
Phase 2
SpudWrench
Admin + operational
Invoice generation and receipting, role-based admin access (5 levels), reporting and transaction tracking, certification-related operations, notification handling
Phase 3
Payments & Legacy Sync
Integration layer
Xpress Pay integration (dues + initiation + reinstatement), payment callbacks, receipts and notifications, IWITS master sync and old-to-new sync, audit logging for all payment events
The Challenge

Business and technical complexity on every axis.

The project required balancing member experience, operational efficiency, and safe interoperability with legacy systems — all simultaneously. None of the complexity could be deferred; each layer depended on the others.

01

Legacy Coexistence

The new applications had to run in parallel with the existing IWITS environment — requiring careful sync and migration logic rather than a simple cutover. Both old and new systems needed to remain accurate and consistent throughout the transition, with no tolerance for data divergence during the parallel-run period.

02

Distributed Architecture Complexity

Workflows spanned multiple components — web applications, background services, databases, sync jobs, and external integrations. The architecture had to keep these concerns cleanly separated while still enabling them to communicate reliably, particularly for time-sensitive events like payment confirmations and status updates.

03

Data Consistency Across Systems

Member identity, certification, and payment records had to remain aligned across both legacy IWITS and the modern platform. Duplicate records, mismatched fields, and delayed syncs were especially risky — any inconsistency visible to members (wrong certification status, wrong dues amount) would directly undermine trust in the new platform.

04

Payment Workflow Complexity

The dues model included one-time payments, recurring payment requests, initiation fees, reinstatement fees, invoices, receipts, success and failure notifications, and sync back to IWITS. Each payment type had its own flow, edge cases, and notification requirements — demanding a robust, thoroughly tested integration with Xpress Pay.

05

Role-Based Access Across Five User Types

The platform had to support meaningfully different views and permissions for members, local users, local admins, international admins, and IT admins. Getting role boundaries right was critical — both for security and for usability — with incorrect access controls potentially exposing sensitive member data or administrative functions to the wrong users.

What We Did

A connected platform solution with clear separation of concerns.

We approached the engagement as two connected platform initiatives — Member Portal for the member-facing experience, and SpudWrench for the operational backbone — with the Xpress Pay integration bridging both. Every component was designed for controlled evolution alongside the legacy system, not against it.

01

Member Portal

Built the Member Portal as a new ASP.NET MVC application aligned to legacy records. Introduced a structured member journey: registration using member number, last name, and email validation against IWITS records; email confirmation and secure password setup via ASP.NET Identity; login and account access; self-service for profile updates, certification visibility, local union information, pending dues display, and payment history.

02

SpudWrench Operational Backbone

SpudWrench served as the operational engine for administrative needs — handling invoice generation and receipting workflows, role-based access across five user levels, transaction reporting and tracking, certification-related operations, and internal notification handling. Designed to minimise changes to legacy applications by shifting business logic progressively into the newer platform.

03

Xpress Pay Integration

Built the full payment integration: invoice generation when payments are due, payment requests sent through Xpress Pay, callback APIs to accept payment status updates, database updates on payment confirmation, receipt generation and email delivery, recurring payment request support, and sync of paid and failed statuses back to IWITS — connecting the member-facing portal with SpudWrench's operational records.

04

Legacy Synchronisation (IWITS)

Implemented master sync and old-to-new sync processes to maintain data consistency between legacy IWITS and the modern platform — using merger and splitter patterns to consolidate and distribute data models across multiple databases. This design enabled controlled interaction with both systems without requiring a big-bang cutover.

05

Audit Logging & Notifications

Established audit logging for all payment requests, payment status changes, notification events, and database updates — giving the organisation full traceability for compliance and troubleshooting. Built a decoupled notification module concept capable of serving HQ, Member Portal, and SpudWrench through email, SMS, and dashboard channels.

06

Architecture for Extensibility

The full solution used a layered ASP.NET MVC architecture — service layer, repository layer, and database layer — with clear separation of concerns enabling controlled evolution. The design provides a validated path for future capabilities: recurring payments, bulk actions, expanded notifications, mobile API support, and broader module modernisation without requiring architectural rework.

Results & Impact

What changed.

5

User Role Types Supported

Members, Local Users, Local Admins, International Admins, IT Admins — each with appropriate access controls and purpose-built views.

Parallel

Modernisation Without Disruption

New systems designed to run alongside IWITS — phased evolution without risky big-bang replacement. Business continuity maintained throughout.

Full

Payment Lifecycle Covered

Dues, initiation, reinstatement — invoice generation, payment request, callback, receipt, notification, and IWITS sync all connected end-to-end.

Audit

Full Transaction Traceability

Audit logging for payment requests, status changes, and database events — improved supportability, troubleshooting, and governance across the platform.

Self-Service

Member Digital Experience

Members gained a clear digital path for registration, login, certifications, profile management, dues visibility, and payment history — reducing staff burden.

Scalable

Architecture for Future Growth

Layered ASP.NET MVC architecture ready for recurring payments, bulk actions, expanded notifications, mobile APIs, and additional module modernisation.

Tools & Technology

The stack.

Framework
ASP.NET MVC — service layer, repository layer, and database layer architecture with clear separation of concerns
Authentication
ASP.NET Identity — secure member registration, email confirmation, password management, and login
Payment Integration
Xpress Pay — dues, initiation, and reinstatement payments; invoice generation, payment requests, callbacks, receipts, and notifications
Legacy Integration
IWITS — master sync, old-to-new sync, merger and splitter patterns for multi-database consistency; sync jobs for ongoing coexistence
Notifications
Decoupled notification module — email, SMS, and dashboard channels for HQ, Member Portal, and SpudWrench
Audit & Compliance
Audit logging for all payment events, status transitions, and database operations — full traceability for compliance and operational governance
The Takeaway

The Iron Workers engagement shows what platform modernisation looks like when you can't afford to break anything that's working. Building two new platforms — Member Portal and SpudWrench — in parallel with a live legacy ecosystem demanded more than good code. It required architecture that could coexist gracefully, sync reliably, and evolve incrementally. The result was a connected digital operating model: members got self-service, administrators got structured workflows and traceability, and the organisation got a scalable foundation that won't require another ground-up rebuild to extend. Phased modernisation done right — no disruption, no shortcuts.