Hi Guys, I am posting my proposal that was recently accepted for Google Summer of Code 2010 at phpMyAdmin. It is a great chance for me to do something really honorable in my life 😉 I will try my best to do everything according to plan. Following is the original proposal.
Exporting Relations schema to SVG,EPS,PDF,MS Visio and Dia’s XML file formats
Synopsis:I will introduce very magnificent features to help the demonstration of dynamic view of database structure by using PHP,MYSQL and XML, having ability to export Relations schema
in SVG,EPS,PDF,MS Visio and Dia’s XML file formats. The features, I am catering will possibly be available in phpMyAdmin schema tab along with other tabs.
Benefits to the users:
Just a couple of clicks away from the fabulous demonstration for any type of project related to databases. Dia,SVG and Visio formats store its diagrams as XML documents while Pdf and Eps are also widely used document formats. So, all these formats are much more suitable for the inclusion in the documents.
1. SVG is a language for describing 2D-graphics and graphical applications in XML.
2. The EPS file can contain any combination of text, graphics, and images,and it is the same as any other PostScript language page description with only a few restrictions.
3. Each Adobe PDF file encapsulates a complete description of a fixed-layout 2D document that includes the text, fonts, images, and 2D vector graphics which compose the documents
4. You could even edit the dia XML diagrams by hand. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and simple circuits.
5. All types of Visio documents (drawings, stencils, and templates) can be saved in the XML for Visio format.
I have planned to do the exporting relations schema (without Data Dictionary) to 5 formats including the rewrite of PDF schema that is currently bounded to just pdf. So, I will basically create a base class for rendering the schema and then implement subclasses for each format including the rewrite of PDF.
My efforts will actually be a PHP script which takes the database structure in phpmyadmin and exports the proposed formats. It will be Object Oriented Module that can be extended with other formats in future.
My game plan is to use XML Writer extension (This extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data) for generating XML in native format of Dia’s XML Program,SVG and Microsoft Visio’s Formats. I will not use any existing library for these formats because I will program them myself. However, for PDF , I will use tcpdf existing library and at last for EPS I will need to create Post scripts file manually by using pslib provided by php. Specification of all the formats are available. So, it will not be problem to create the files manually.
EPS Specification http://www.adobe.com/devnet/postscript/pdfs/5002.EPSF_Spec.pdf
MS Visio http://msdn.microsoft.com/en-us/library/aa218409(office.10).aspx
Users will be able to put the title of the documents at the time of exporting schema. There is an option that this feature should be available with the tabs at top or it should be in Operations tab.
Deliverables:Results will be a module of phpmyadmin that produces relational schema of database structure without data dictionary in SVG,EPS,PDF,Visio and Dia Formats.
During Community bonding period I will study the internals of PMA though I will feel better understanding after doing couple of patches. when coding session will start following will be my schedule and I will give u updates every week. I will also stay online in IRC during working on project.
week-1 : code the base class and subclasses structure
week-2 : implement PDF export
week-3 : code the SVG structure subclass
week-4 : implement SVG export
week-5 : code the Dia structure subclass
week-6 : implement dia’s XML format
week-7 : code the Visio structure subclass
week-8 : mid-term evaluation
week-9 : implement Visio format
week-10 : code the EPS structure subclass
week-11 : Implement EPS format
week-12 : Final Evaluation
I will keep posting the updates to the community to get some feedback.