ABOUT

Why this exists.

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.

Goal

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.

Tech Stack

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.

Core Flow

Create Client → Create Contract → Create Issuing Contract → Create Card → Activate, alongside reading client, contract, balance and transaction data back out of WAY4.

ABOUT

How it's built.

Four decisions that shaped almost every file in the repository.

One operation per action

Every button in the UI maps to exactly one named WAY4 operation. No hidden orchestration, no surprise side effects.

Types all the way down

A code-first GraphQL schema means the frontend and backend can never quietly disagree about a field.

Auth that survives a refresh

Access tokens live in memory only; a rotating refresh token in an httpOnly cookie restores the session silently on load.

Honest error messages

WAY4 return codes are parsed and surfaced as readable errors rather than a raw SOAP fault.

Take a look around.

Create an account and the whole flow — client, contract, card, statement — runs against a live WAY4 sandbox.

Get started