Google Summer of Code 2008 Project Proposal
CayenneModeler Usability Improvements
CayenneModeler Usability Improvements
Cayenne is a Java object relational mapping (ORM) framework. It is a tool for Java developers who need to communicate to a database or many databases. Rather than hardcoding SQL statements through Java code, Cayenne allows a programmer to work only with Java objects abstracted from the database. The goal of the project is to improve usability of Cayenne main modeling GUI tool, CayenneModeler. CayenneModeler is a cross-platform Swing application.
- -Support for copy/paste of entities/attributes/relationships -Right-click contextual menu for entities/attributes/relationships that would include common operations, like "delete". -Allow multiple item selections on the left-hand project tree and right-hand attribute panels. Common operations (like "delete") should work on multiple objects.
- -Colored syntax for SQLTemplate (e.g. via jEdit Syntax Package per CAY-892) -Welcome Screen (CAY-894) -A log console window (CAY-366) -Undo functionality.
- -JComboBox autocompletion (CAY-911) -Support for on-the-spot validation (some examples of users requesting this are CAY-907 and CAY-888)
- -Change default object relationship delete rule (CAY-436)
-ObjectSelectQuery improvements (CAY-888) -Detection of the project file changes on disk.
I break my development cycle of the project into following steps. I try to stick to this. I hope to follow the coding standards and development methodologies of Cayenne.
1. Understanding CayenneModeler code (by 28th May)
Within this period I will look into understand architecture of CayenneModeler in to very deep and try to identify the areas which I have to change in order to improve the usability and features mentioned in above tasks.
2. Finishing 1st deliverable (by 14th of June)
3. Finishing 2nd deliverable (by 28th of June)
4. Finishing 3rd deliverable (by 15th of July)
5. Finishing 4th deliverable (by 3rd of August)
6. Final code touch ups and testing everything (by 10th of August)
7. Completion of the documentation (by 14th of August)
Deliverable(s): Final product plus final documentation
I’m an undergraduate in the Department of computer science and engineering at University of Moratuwa, Sri- Lanka. Currently I’m in the fourth year. Recently I underwent training at an organization called Integrated Systems International at Sri-Lanka. I was exposed to industrial work there for a 6 month period of time and having programming experience more than 4 years. I like to do programming in Java.
Why I’m interested in Open Source development
I consider my self as a person who had benefited from the opensource community. Since I had done few software projects I can understand the effort behind the software. I had used the software freely and legally. But as a developer I should value the effort behind that. Therefore I decided to give something back to the community. In this way other will also benefit from what I have developed. So I think that I have fare reasons to be you interested in Open Source development.
Why I decide to apply for the Google Summer of Code?
I successfully finished last years summer of code project at that time I was new and I learnt a lot about open source culture and society. My last year project at XWiki was a huge success and XWiki had started to permanently develop XEclipse as one of there product. Even after last year summer of code I helped the XEclipse project. Still I love to test the new releases of the XEclipse and use them. I want to make the some thing happen for Summer of Code 2008 also, where I can be proud of my self for giving something back to the community where I got benefited. Since I have finished all my final year examination I have a free time period, where I have lesser work load. I really wanted to participate in an international activity like this. Here at SOC I can contribute to opensource community, gain experience from that and earn money at the same time to cover my expenses. Moreover I think if I’m selected for this project I can spend my leisure to a valuable effort.
Project related experience
I had created a plug-in for Eclipse which makes it possible to edit, save, add and remove XWiki pages directly from the Eclipse IDE following the same principle used by TimTam. This project is called XEclipse now and earlier it was called an IDE Editor Integration (This was my GSoc 2007 project which was completed by me successfully).
I have developed a small web server as an individual university project. It was written in Java as a socket server. Basically it listens on a port and web browsers can send HTTP requests to the web server. Then I analyse the http request and send the required files along the output stream back to the web browser. The web server written by me only supported http HEAD, GET methods only. I log the requests coming to web server to a log file. Later a GUI (java, swing) utility program parses this log and updates log messages to a database. After that user can inquire details of the requests in various forms and GUI will represent them as graphs or tabular manner.
I was given to write a socket server by the training organization that retrieves data from the database directly according to a request of a socket client. The application consists of starting and stopping listening for the clients. Since the main role of this is to do direct SQL queering (as stored procedures, views, queries) on Database and send the Result Set back to the client in an agreed format other wise client will not understand the message received. This socket server has a GUI (java, swing) which shows details of connected clients and the messages sent and received to socket server.
During my training period I wrote an industrial application in JAVA which is capable of connecting to three types of existing applications of the organization and monitor and command them remotely. The socket client had a very user-friendly GUI and every one in the organization was very happy about the usability. The GUI is very similar to "cayenne-modeler" project of apache since it had tree ("JTree") view representing monitoring elements of three types. I have to add new monitoring elements and create, update "JTables", "JTree" dynamically and change the "Right click" options depending on the type of the client. I had to display different types of messages in different colors. I had used java, swing, sockets and logging for this project.
Why should you take ME
I consider my self as a very energetic, capable, adaptive very well organized team worker who has a good idea of the project requirement. I think I can be a fine fit to the requirements of yours and gerent you a fine finish of the CayenneModeler Usability Improvements project.
1. My previous GSoc project (http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/IDE+Editor+Integration)
3. Department of Computer Science (http://www.cse.mrt.ac.lk/)