================================== Google Summer of Code Ideas (2008) ================================== This list contains ideas for projects that could be done for the `Google Summer of Code`__ . All projects require knowledge of PHP and are mere suggestions. In case you're interested and want some more information, please write to dr@ez.no. __ http://code.google.com/soc/2008 Requirements for all of these projects: - the project should integrate nicely in eZ Components__ - requirements, design and implementation should follow the `Development process`__ and the `Coding standards`__ of eZ Components - it should not depend on other eZ Components except Base - a small example application should be created to show the new functionality __ http://ezcomponents.org/ __ http://ezcomponents.org/contributing/dev_process __ http://ezcomponents.org/contributing/coding_standards Parsers and Output Formats for Document Component ================================================= One or more from the following formats. Some of those are easy (LaTeX, Open Document) or hard (OpenXML, PDF). Latex parser ------------ The document component from the eZ Components projects attempts to offer a single interface for conversions between document markup languages. A LaTeX parser would use pure PHP code, with optional use of php extensions, to parse a LaTeX document into some abstract syntax tree, which then is rendered into the standard intermediate format DocBook, which is used as a crossing point between all conversions. OpenDocument format parser -------------------------- The document component from the eZ Components projects attempts to offer a single interface for conversions between document markup languages, with DocBook as a selected intermediate format as a crossing point between all conversions. A converter may be implemented using XSLT or PHP and will be required to make (configurable) assumptions based on the document formatting to convert the document into semantical docbook markup. OpenXml format parser --------------------- The document component from the eZ Components projects attempts to offer a single interface for conversions between document markup languages, with DocBook as a selected intermediate format as a crossing point between all conversions. A converter may be implemented using XSLT or PHP and will be required to make (configurable) assumptions based on the document formatting to convert the document into semantical docbook markup. PDF output renderer ------------------- The document component from the eZ Components projects attempts to offer a single interface for conversions between document markup languages, with DocBook as a selected intermediate format as a crossing point between all conversions. A renderer for DocBook written in PHP would enable the user to render all implemented formats. The renderer may use open source PDF libraries with PHP bindings, like pecl/haru, and should produce PDF following user defined styling information. Payment handling component ========================== The idea behind this component is to provide a common interface for web payment solutions. This should include Paypal (https://www.paypal.com/), Paynet (https://www.paynet.no/), Worldpay (http://www.worldpay.com/), SecPay (http://www.secpay.com/) and others. The package should also include the possibility to query exchange calculation services and to retrieve exchange rates. Knowledge of payment handling would be useful. ACL Component ============= The ACL project is about an implementation of a role-based access control (RBAC) in PHP (See here__, here__ and here__). Depending on the scope, this could get pretty complex. __ http://en.wikipedia.org/wiki/Role-based_access_control __ http://csrc.nist.gov/groups/SNS/rbac/faq.html __ http://technet2.microsoft.com/WindowsServer/en/library/72b55950-86cc-4c7f-8fbf-3063276cd0b61033.mspx?mfr=true JSR170/283 Content Repository Implementation ============================================ Content Repository API for Java (JCR) is a specification for a Java platform API for accessing content repositories in a uniform manner. The content repositories are used in content management systems to keep the content data and also the meta-data used in CMS such as versioning meta-data. The specification was developed under the Java Community Process as JSR-170 (Version 1) and as JSR-283 (Version 2). This project would include designing, implementing and testing a PHP (5.2) based implementation of this API. The difficulty of this one is medium. Foreign Key Support for DatabaseSchema Component ================================================ The DatabaseSchema__ component implements a set of classes that allow you to extract information from a database schema, compare database schemas and apply a set of changes to a database schema. The current implementation uses as one of its file formats PEAR::MDB2's format to store the schema, but it does not support foreign keys yet. This project would include designing and implementing support for reading, writing, and comparing different database's ways of storing this information in internally, as well as keeping the compatibility with PEAR::MDBS'2 format. The difficulty is medium, and database knowledge of more than one RDBMs is definitely a plus. __ http://ezcomponents.org/s/DatabaseSchema