Skip to content

Repository files navigation

COBOL Modernization Platform

We help small US banks read and safely modernize their old COBOL systems. AI reads the old code fast. Our engineers check every result, so nothing breaks. COBOL goes in, Java comes out.

This repo holds three things:

  • backend is the internal web app's API. Java 21 and Spring Boot. It takes in old code, calls a hosted AI to explain it, maps how the parts connect, helps rewrite pieces into Java, and checks the new Java behaves like the old code by compiling and running both and comparing them. Only our team uses it.
  • frontend is the screens our engineers use, built with React and IBM Carbon.
  • website is the small public site, just enough to show banks we are real. It is its own app, fully separate from the internal tool. React and TypeScript with Tailwind and shadcn/ui, plus a little motion: GSAP, Lenis, and one small 3D moment in the hero.

Layout

backend/    Java 21 + Spring Boot API, PostgreSQL, Flyway migrations
frontend/   The internal tool: React + IBM Carbon (TypeScript)
website/    The public site: a separate React + Tailwind + shadcn/ui app
docs/       Notes and the running list of decisions
report/     A plain-English report on the project as a Word file, plus the script that builds it

A few top-level folders are third-party source we downloaded only for reference, and Git ignores all of them: carbon-main (IBM Carbon), GSAP-master, lenis-main, react-three-fiber-master, and ui-main (shadcn/ui). They are not part of our app. Where we actually use one of these libraries, we pull it in as a normal package instead. The frontend uses the official @carbon/react. The public site uses tailwindcss, gsap, lenis, @react-three/fiber, and @react-three/drei, and its shadcn/ui components are generated into the project rather than imported.

Get the code

The repository lives at https://github.com/devpilotX/Bank-Legacy. To clone it:

git clone https://github.com/devpilotX/Bank-Legacy.git
cd Bank-Legacy

What you need

  • Java 21 (we use Temurin 21)
  • Maven 3.9 or newer (the backend also ships a Maven wrapper, so ./mvnw works without a global Maven)
  • Node 22 or newer (this machine runs Node 24)
  • PostgreSQL 14 or newer (this machine runs PostgreSQL 18)
  • Git
  • GnuCOBOL, only if you want to run verification. The engine compiles and runs the old COBOL with it to check the new Java matches. The rest of the app runs fine without it. See docs/runbook.md for the setup.

Run the backend

From Git Bash, in the repo root:

cd backend

# Make your own local settings file from the example, then fill in real values.
cp application-example.properties application-local.properties
# Open application-local.properties and set your database password (and the url
# and username too if your local setup is different).

./mvnw spring-boot:run

Check it is alive:

curl http://localhost:8080/health

You should see something like:

{"status":"ok","version":"0.0.1-SNAPSHOT"}

Run the frontend

From Git Bash, in the repo root:

cd frontend
npm install
npm run dev

Then open the address Vite prints, usually http://localhost:5173. The dev server forwards /health and /api calls to the backend on port 8080, so run the backend too to see the status turn green. There is more detail in frontend/README.md.

Run the website

From Git Bash, in the repo root:

cd website
npm install
npm run dev

Then open the address Vite prints, usually http://localhost:5174. The public site is fully separate from the internal tool. There is more detail in website/README.md.

A note on secrets

We never commit passwords or API keys. Real settings live in application-local.properties, which Git ignores, or in environment variables. There is an application-example.properties with fake values you can copy from.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages