Skip to content
SYS–03Case studyAcademic · ÉTS

FinanceJ

Java desktop personal finance app (income, expenses, budgets). Team of 6 developers, LOG240 course (Testing & Maintenance). 5,250+ LOC, 133 tests (100% JaCoCo coverage), 85 commits. MVC architecture with Singleton, DAO and AbstractTableModel patterns. Most active contributor (28 commits).

Role
Team lead
Team
6 developers
Stack
Java · JUnit
Setting
ÉTS — Test & Maintenance
01

Context

A personal-finance application (accounts, budgets, transactions) delivered by a team of six, in a course graded on test quality and maintainability.

  • Java Swing · MVC architecture
  • Multi-account management, budgets and reports
  • Legacy codebase to evolve without regression
  • Graded on coverage and testing rigor
02

Role: team lead

I took coordination: knowing each member's strengths, assigning tasks fairly, keeping the pace — and shipping my own share.

  • Task assignment based on individual strengths
  • Cross-reviews before every merge
  • Progress tracking and calm follow-ups
  • Team testimonials: “an excellent leader”
03

Approach: TDD

Tests first where the module allowed it: every critical ledger behavior locked by a test before refactoring.

UI / end-to-end — critical flows
Integration — ledger modules
Unit — most of the 133 tests
133 tests total · full coverage as reported*
04

Results

A 133-test suite that made fearless refactoring possible, and an on-time delivery.

133
tests
6
developers coordinated
full*
coverage as reported
100%
delivered on time
05

Lessons

Technical leadership is first about clarity: who does what, why, and how it is verified.

  • Tests are a team contract, not an individual chore
  • A tested base makes refactors calm
  • Assigning by strengths beats assigning equally