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).
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
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”
Approach: TDD
Tests first where the module allowed it: every critical ledger behavior locked by a test before refactoring.
Results
A 133-test suite that made fearless refactoring possible, and an on-time delivery.
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