An internship project with a production-shaped problem: put a modern JSON/GraphQL stack in front of a legacy XML/SOAP core banking system.
WAY4 Connect is a full-stack web application built to learn how a real banking front end is put together — and to prove that the awkward parts of core-banking integration can be hidden behind a clean, typed API.
Build a NestJS + Next.js application that manages Users and Contracts, authenticates with JWT, and integrates with WAY4 through a SOAP/XML adapter layer — without leaking any of that XML to the frontend.
NestJS, Apollo GraphQL, Prisma, PostgreSQL, Redis, Passport + JWT on the server. Next.js 15 App Router, TypeScript, Redux Toolkit, TanStack Query & Table, Tailwind and i18next on the client.
Create Client → Create Contract → Create Issuing Contract → Create Card → Activate, alongside reading client, contract, balance and transaction data back out of WAY4.
ABOUT
Four decisions that shaped almost every file in the repository.
Every button in the UI maps to exactly one named WAY4 operation. No hidden orchestration, no surprise side effects.
A code-first GraphQL schema means the frontend and backend can never quietly disagree about a field.
Access tokens live in memory only; a rotating refresh token in an httpOnly cookie restores the session silently on load.
WAY4 return codes are parsed and surfaced as readable errors rather than a raw SOAP fault.
Create an account and the whole flow — client, contract, card, statement — runs against a live WAY4 sandbox.
Get started