Wenn du das Ganze als Übung sehen willst, dann kannst du ja mal die komplette Konzeption (Entitäten, Use-Cases, Status-Diagramme und Szenarien als Sequenz-/Aktivitätsdiagramme) unabhängig der Programmiersprache machen.
Für die Umsetzung kannst du dann mit verschiedenen Technologien spielen (neben der Programmiersprache kannst du ggf. auch mal eine SQL-Datenbank gegen eine noSQL-Datenbank tauschen). Als Programmiersprachen/-platformen kannst du neben Java ja auch .NET, TCL/TK, QT oder auch GTK verwenden. Ebenso kannst du deine Desktopanwendung auch mal als RCP-Anwendung entwickeln.