GSoC 2012 Project Ideas

GSoC Logo

Welcome to the GSoC 2012 Ideas Page

phpBB was a mentor organisation in Google Summer of Code 2012. On this page you can find ideas for potential projects that were listed in 2012.

Make sure to also read the GSoC Instructions.

Content

Core Ideas

Website


Core 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
  • 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
  • JavaScript

Available mentors

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

Session Backend Abstraction

Summary

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.

Further Information

Available Mentors

  • Nils Adermann
  • Andreas Fischer

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 (preferred)

Available Mentors

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

Auth Plugin Refactoring

Summary

While authentication plugins turned out to be very useful, their implementation imposes a number of unnecessary 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 (Preferred)

Available Mentors

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

Website Ideas

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 Prerequisites

  • Web design
  • Usability
  • HTML/CSS
  • Image editing
  • Git knowledge (preferred)

Available Mentors

  • Sam Thompson

Proposing your own idea

For non-website ideas, RFCs on Area51 are a good source of ideas as they represent what our users already told us they want. Most mentors are available in phpBB's Discord or phpBB's IRC development channel #phpbb-dev and on Area51.

If you propose an original idea it will have a higher chance of being accepted if it satisfies the following two criteria:

  1. Checkpointable - it should be possible to break down your project into pieces that are by themselves meaningful. In practical terms, this means you should be sending a pull request every 1-2 weeks reflecting your work during that period, and the pull request should be individually mergeable. Avoid proposing a project that cannot be split into 1-2 week chunks.
  2. Likely to be completed - this involves several factors, but at the end of the day the goal is for your work to be finished within the GSoC timeframe. You should start by detailing components of your project to sufficient extent that they can be estimated. Then, honestly estimate how long you think it will take you. Then double that estimate. If you exceed 3 months, your proposal is probably too ambitious and you should reduce its scope.

As always, if you are unsure about anything or have questions please don't hesitate to contact us. Also, please discuss your idea first before proposing it in your application.



check out our sponsor