GSoC/2012/Ideas

This page is based on a similar page in the KDE community wiki.

= General Information =

phpBB is participating as a mentor organisation in Google Summer of Code 2012. If you are a student please read GSoC/2012/Instructions for application instructions. On this page you can find ideas for projects which might inspire your application. Keep in mind that you may also suggest your own project if you have a great idea for improving phpBB.

If you are a mentor, please add yourself to the list of available mentors of ideas that you think you could mentor. Feel free to add further ideas, preferably based on already discussed RFCs from Area51

= Ideas =

Attachment Improvements
Brief explanation: Only basic attachment upload using HTTP uploads (multipart/form-data) is supported right now. Quite a few improvements are possible when JavaScript is available: Limitations of PHP settings upload_max_filesize and max_execution_time can be worked around by sending multiple HTTP requests instead of one. Multiple files can be selected for upload and a queue can be shown with upload status etc.. If images are to be uploaded and the board does not need them in full size, they can be resized prior upload to save bandwidth and time.

Expected results: Integration of Plupload or a similar tool that makes attachment upload a nicer experience. Ability to upload multiple files to a forum post, ability to download all attachments of a post, ability to download all attachments of a topic. It has to be ensured that existing security mechanism also apply to uploads made using JavaScript and uploads still work even without JavaScript.

Knowledge Prerequisite: PHP and JavaScript

Available Mentors: Nils Adermann (IRC: naderman, Timezone: UTC+1), Andreas Fischer (IRC: bantu, Timezone: UTC+1)

Rich Text Editor Integration
Brief explanation: BBCode is a lightweight markup language based on XHTML used to format posts. As such it is very technical and can be difficult to use, especially for novice internet users. It is also difficult to use for more experienced users when the formatting gets more complex. BBCode however also serves as a security mechanism for preventing the use of arbitrary HTML markup (and thus JavaScript), so the existing BBcode editor can not be replaced with an editor that produces HTML. A possible solution could be the use of a JavaScript editor that produces BBcode which is then translated to HTML as before.

Expected results: Integration of a Rich Text Editor into phpBB core, making the use of the bulletin board a lot easier by allowing users to pick the editor that fits their needs.

Knowledge Prerequisite: PHP and JavaScript

Available Mentors: Nils Adermann (IRC: naderman, Timezone: UTC+1), Andreas Fischer (IRC: bantu, Timezone: UTC+1)

Session Backend Abstraction
Brief explanation: High traffic websites can already make use of fast in-memory stores (such as memcached or Redis) for improved caching. However volatile session data is still handled by the (relational) database, occasionally causing load problems. First very complete test coverage of current session code should be achieved to be able to guarantee the continued correct functionality of the session mechanism, which is of critical importance to running a board. The session code should then be refactored to provide an abstraction of the storage mechanism used, to allow for faster backends to be implemented.

Expected results: A properly designed storage interface for session data and working backend implementations for relational databases and memcached. A Redis implementation would be useful but is optional.

Knowledge Prerequisite: Object-oriented PHP required, familiarity with key-value stores useful but not mandatory.

Available Mentors: Nils Adermann (IRC: naderman, Timezone: UTC+1), Andreas Fischer (IRC: bantu, Timezone: UTC+1)

Search Backend Refactoring
Brief explanation: Search backends currently cannot modify the user interface of search. Besides the backends "Fulltext MySQL" and phpBB's own "Fulltext Native" already present in phpBB core, external alpha-quality implementations for Sphinx and PostgreSQL exist. A lot of code gets duplicated in alternative search backends, suggesting the abstraction could be improved.

Expected results: A properly redesigned interface for search backends that allows search backends to modify the user interface of search. Integration of backend implementation for Sphinx and PostgreSQL into phpBB core.

Knowledge Prerequisite: Object-oriented PHP required, familiarity with search engines useful but not mandatory.

Available Mentors: Nils Adermann (IRC: naderman, Timezone: UTC+1), Andreas Fischer (IRC: bantu, Timezone: UTC+1)

Auth Plugin Refactoring & User Integration
Brief explanation: While authentication plugins turned out to be very useful, their implementation imposes a number of unecessary limitations. It is impossible to use multiple mechanisms at the same time, to allow for example both OpenID and regular registration to be available. The plugins cannot change any of the user interface making it impossible to modify the login mask to reflect different input requirements, for example those of OpenID. It is difficult to integrate the profile data with other systems, this includes settings like username and passwords.

Expected results: An object-oriented interface for authentication backends allowing multiple authentication plugins to be selected simultaneously and allows them to change the user interface. Profile changes to both account settings and profile data should either be preventable by such plugins or cause notification of the respective plugin so the data can also be changed in its own database. Refactoring existing function-based authentication plugins and adding an OpenID implementation.

Knowledge Prerequisite: Object-oriented PHP required, familiarity with OpenID or similar authentication mechanism useful but not mandatory.

Available Mentors: Nils Adermann (IRC: naderman, Timezone: UTC+1), Andreas Fischer (IRC: bantu, Timezone: UTC+1)

Design and User Interface
Brief explanation: phpBB.com was designed circa 2006 and its design/usability has shown age and fatigue over the years. Many of the design elements used are out of date and need modernizing. The problems with the current layout include poor usability, very ridged retail space (on the pages), lack of standard CSS elements, etc. Additionally, information can be hard to find due to the poor usability in some areas and the lack of clear, predictable linking to content on the website.

Expected results: Front-end implementations of many of the frequently visited pages (Downloads, About, Blog), and generalized layouts for other views. Next, a developed styleguide for future development and maintenance showcasing all the available elements built in. The final designs should foster a good user experience and create clear, consistent, and predictable ties between areas of the website.

Knowledge Prerequisite: Web design, Usability, HTML/CSS, and Image editing. Git knowledge is a plus, but not required.

Available Mentors: Sam Thompson (IRC: Sam-T, Timezone: UTC-8)