Splendid, you would like to contribute! Welcome to the team.
If you have questions, contact Johannes: via email or via xmpp or via skype.
You can also just go ahead and check out the code, or fork it on github.
Jake is seperated into several components.
Central is the violet core, the implementation of the synchronisation, the protocol, the log access, and all the user interactions (use cases).
Find violet at http://jakeapp.sourceforge.net/violet/.
Currently a GUI based on swing is implemented to access violet.
Find the gui at http://jakeapp.sourceforge.net/gui/.
Several frontends are thinkable, for instance you could build a web interface. Another frontend, primarily for testing, but possibly also for headless servers, is the commander.
Find the commander at http://jakeapp.sourceforge.net/commander/.
Violet depends on several internal libraries:
FSS is the file-system-service, providing computer-independent addressing of files within a folder. It also provides hashing, launching files, and watching for changes.
Find the fss at http://jakeapp.sourceforge.net/fss/.
The ICS is a major component that provides low-level communication. You can think of it as an interface to XMPP (the implementation for this is ICS-XMPP. A good description of the task of the ICS is given on its project website.
Find the ics at http://jakeapp.sourceforge.net/ics/, and ics-xmpp at http://jakeapp.sourceforge.net/ics-xmpp/.
It is completely thinkable to implement a, say, ICQ implementation of the ICS that could be used instead of the XMPP implementation.
AvailableLater (AVL) is a small library that provides a interface for asynchronous calls.
Find availablelater at http://jakeapp.sourceforge.net/availablelater/.