Summer of Code 2008 – Project Proposal for 'CayenneModeler Usability Improvements'
Thotage Thanuka Srimal Piyasena.
<thanuka.sp AT gmail DOT com> or
<050333R AT cse DOT mrt DOT ac DOT lk>
Andrus Adamchik <aadamchik AT apache DOT org>
CayenneModeler Usability Improvements
Cayenne-Modeler Usability Improvements is included in Apache Cayenne. Cayenne is a Java object relational mapping (ORM) framework. it gives easy way to deal with a database (or many databases) for Java developers. it is a tool which allows user to work only with Java objects abstracted from the database rather than hard coding SQL statements through Java code.
Cayenne stores mapping and deployment information using a set of XML files with a predefined format. These files can be always edited by hand, but Cayenne goes beyond that.
A standard distribution contains CayenneModeler - a Java Swing GUI application that serves as an Object/Relational modeling tool. It is much more than just a specialized XML editor. It provides a comprehensive set of O/R functions, including:
- Work with Cayenne mapping projects.
Reverse-engineering RDBMS schema into Cayenne DataMaps.
Generation of the database schema from the mapping information stored in DataMaps.
Java class generation from the mapping information stored in DataMaps.
- Management of the project deployment structure and database connection information.
- Validation of created mappings.
- Import from some other O/R model formats (EOF).
The goal of the this project is to improve usability of Cayenne main modeling GUI tool, CayenneModeler which is a cross-platform Swing application.
The goal of this project is to improve usability of Cayenne main modeling GUI tool, CayenneModeler which is a cross-platform Swing application.
The task is made of a number of subtasks described under the deliverables and expects to complete it giving consideration on its major subtasks.
1.JComboBox autocompletion (CAY-911)
2.Support for copy/paste of entities/attributes/relationships
3.Improved ObjRelationship mapping dialog
4.Right-click contextual menu for entities/attributes/relationships that would include common operations, like "delete".
5.Allow multiple item selections on the left-hand project tree and right-hand attribute panels. Common operations (like "delete") should work on multiple objects.
6.Detection of the project file changes on disk.
7.Support for on-the-spot validation (some examples of users requesting this are CAY-907 and CAY-888)
9.Colored syntax for SQLTemplate (e.g. via jEdit Syntax Package per CAY-892)
10.Welcome Screen (CAY-894)
11.Change default object relationship delete rule (CAY-436)
12.A log console window (CAY-366)
13.ObjectSelectQuery improvements (CAY-888)
Step 1: Getting understanding of CayenneModeler code
Under this step I will deeply consider about the architecture, coding standards and development methodologies of Cayenne.
Estimated Completion: 27th of May
Step 2: Release version 1.0
In here I will finish the deliverables 2, 4 and 5. That means I will complete the following subtasks mentioned in deliverables.
1. Support for copy/paste of entities/attributes/relationships
2. Right-click contextual menu for entities/attributes/relationships that would include common operations, like "delete"
3. Allow multiple item selections on the left-hand project tree and right-hand attribute panels. Common operations (like "delete") should work on multiple objects.
Estimated Completion: 17th of June
Step 3: Release version 1.1
In here I will finish the deliverables 1, 3 and 6. That means I will complete the following subtasks mentioned in deliverables.
1.JComboBox autocompletion (CAY-911)
2.Improved ObjRelationship mapping dialog
3.Detection of the project file changes on disk.
Estimated Completion: 25th of June
Step 4: Release version 1.2
In here I will finish the deliverables 7, 8 and 9. That means I will complete the following subtasks mentioned in deliverables.
1.Support for on-the-spot validation (some examples of users requesting this are CAY-907 and CAY-888)
3.Colored syntax for SQLTemplate (e.g. via jEdit Syntax Package per CAY-892)
Estimated Completion: 14th of July
Step 5: Release version 1.3
In here I will finish the deliverables 10, 11, 12 and 13. That means I will complete the following subtasks mentioned in deliverables.
1.Welcome Screen (CAY-894)
2.Change default object relationship delete rule (CAY-436)
3.A log console window (CAY-366)
4.ObjectSelectQuery improvements (CAY-888)
Estimated Completion: 5th of August
Step 6: Final adjustments and performance improvements
After finishing the whole bundle of sub tasks I will start to test those implementations and improve the performances and adjustments needed.
Estimated Completion: 12th of August
Step 7: Documentation improvements
Include the new features in the documentation and enhance the tutorial if needed.
Estimated Completion: 20th of August
I'm a Level 3 undergraduate student of the department of Computer Science and Engineering of University of Moratuwa, Sri Lanka. I have gone through the main task described in the Cayenne project and have good understanding about it. I am very much familiar with J2SE and Swing package and I already have some experience regarding some features required in this project. Such as,
• JComboBox auto completion (both editable and non editable)
• Welcome Screen
• Common operations (like "delete") work on multiple objects
• Implement dialog boxes etc…
So I think I have gained reasonable amount of experiences to do this projects through working on projects in university and training place. I have an internship experience of six months in IronOne Technologies (Pvt) Ltd. I'm really interested in open source development and always hoping to contribute in valuable projects. The GSoC 2008 is the best way to contribute the open source development as I think.
University of Moratuwa - http://www.mrt.ac.lk
Department of Computer Science and Engineering - http://www.cse.mrt.ac.lk