Summer of Code Proposal - Cayenne ROP Application
Subject ID |
cayenne-rop http://wiki.apache.org/general/SummerOfCode2006#cayenne-rop |
Subject |
Implementing a Java desktop application which uses Cayenne's Remote Object Persistence |
Author |
Marcel Gordon |
Background
Author
I'm an undergraduate student in my final year of B Computer Science / LLB at the University of Wollongong, Australia. I have worked as a programmer on web development, desktop applications and server-side Java. I presently teach Java and C++ to post-secondary students.
I am interested in this project because it combines a number of different areas - see below - and will expose me to technologies which I have not had an opportunity to use before.
Project
Cayenne is an "open source component-oriented persistence framework". The proposal is to implement an application with a graphical user interface which utilises Cayenne's Remote Object Persistence technology.
A suitable application would be a CMS/Wiki editor. As well as being a good demonstration of Cayenne, it could potentially also be a useful application in itself.
I propose to implement the application using Eclipse's Rich Client Platform.
Deliverables
A Wiki/CMS editor with a graphical user interface, well-documented in order to function as a sample application for Cayenne's Remote Object Persistence functionality.
Benefits for the Apache community
The application would be an example of how Cayenne's Remote Object Persistence technology works, helping to grow the Cayenne project. In addition, the application could be used by Cayenne developers to edit the group's Wiki.
Design / Approach
All parts of this project ought to be well documented. That goes without saying, but is particularly important in this case because the application will be used as an example.
I propose to use Eclipse's RCP to develop this application. The application would be based around a viewing component, essentially a browser. A second component would be used for editing. A map would be created for each CMS/Wiki which was a target of the application, mapping different pages to different editing configurations. That way the page to be edited could be located in an intuitive way and the results of the editing viewed very quickly and easily. The primary target would be Confluence, the Wiki used by the Cayenne project.
Additionally, in order to create new entries an 'Add record' type editing page would have to be defined for those records where it is needed. A login component would also be needed to authenticate against the target's user database.
Another feature which would be useful is a map of the CMS/Wiki which is independent of the Web view (deriving a navigable map based on page titles, for example - a kind of 'Jump to' interface).
Timeline
Date |
Task |
May 23 |
Project commences |
June 6 |
Basic page viewing functionality complete |
June 20 |
Basic editing functionality complete |
June 21 |
Marcel goes on holiday to NZ |
July 10 |
Marcel returns to Oz |
August 7 |
Integration of viewing and editing using mapping |
August 20 |
Documentation and testing complete |
August 21 |
Project submission |