Corebank is a working Spring Boot service that holds accounts, balances and statements. The sprint goal is to get the ledger and statements right, and three bugs are getting in the way. You fix each one in the real codebase and open a GitHub pull request. An AI teammate reviews it, and a hidden JUnit suite run by Maven decides whether it passes.
Real GitHub PRs · Graded by JUnit · Free during beta
Banking code is where small mistakes cost real money, which makes it good practice. Each ticket is a bug report with acceptance criteria, in a Java codebase you didn't write.
availableBalance returns the ledger balance and ignores authorization holds, so a customer can spend money that's already earmarked. To pass, available balance has to equal the ledger balance minus active holds, update when a hold is placed or released, and not count a settled hold twice.
The statement query uses a date range that's inclusive on both ends, so a transaction on the closing date lands on two statements and others land on none. To pass, each statement covers [periodStart, nextPeriodStart), every boundary transaction appears exactly once, and transactions are ordered by post date.
Daily interest is computed as annualRate / 12 / 30 * days, which is wrong for almost every month and especially February. To pass, accrual has to use the actual day count, handle leap years, and round to the cent consistently so the interest reconciles to the statement.
Each Corebank ticket has a hidden JUnit test class that's added to your branch at grading time and run with Maven. The result appears on your pull request as a check.
Corebank assumes you know Java and have seen Spring Boot. It tests whether you can work safely in a codebase where the numbers have to add up.
Developers aiming at banks, fintech or enterprise Java teams who want work that looks like the job.
CS students who know Java from coursework but have never changed someone else's service.
Career switchers who want a reviewed pull request to talk about in interviews.
Juniors who want to learn why date ranges and rounding cause so many production bugs.
Not for: people new to Java. Corebank is about debugging an existing Spring Boot service, so learn the language basics first.
Java 21 and Maven if you work locally. Every Corebank repo also opens in GitHub Codespaces with the toolchain ready.
An AI teammate reviews the diff in the PR thread and can ask for changes. Whether the fix is correct is decided by the hidden JUnit suite.
The failing test output is on the pull request. Push a new commit and the check runs again.
No. Each ticket explains the rule it breaks, such as holds reducing the available balance. The work is reading the code and making it follow that rule.
Yes. Finishing the sprint gives you a certificate with the stack, the tickets you shipped and your tracked hours, behind a public link.
It's free during the beta.