GSoC/2016/Ideas

See also: GSoC Instructions and Last year's ideas.

= General Information =

phpBB is applying to participate as a mentor organisation in Google Summer of Code 2016. If you are a student please read the GSoC Instructions for application instructions.

On this page you can find ideas for projects which might inspire your application. If you wish to submit a proposal based on these ideas, you may want to contact the available mentors for more detailed information.

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

Proposing your own idea
You do not have to use one of the ideas listed here. 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 IRC development channel #phpbb-dev and on Area51. For website ideas feel free to contact one of the website mentors (via IRC [#phpbb-www] or email `website [at] phpbb [dot] com`).

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.

Always discuss your ideas first, as creating a completely new idea without prior consultation of potential mentors is unlikely to succeed. Please use the following template for adding new ideas:

Project Idea
Summary:

Expected results:

Knowledge Prerequisite:
 * Required: ...
 * Useful: ...

Available Mentors:

= Ideas =

Social Sharing Features
Summary: Create an extensible system supporting via an object oriented plugin system any number of 3rd party services to share content to. There may be different options, sharing a link to a topic or a particular post or maybe even a forum, or sharing complete posts or extracts of posts.

Expected results:
 * User interface changes for sharing buttons/dialogs/etc.
 * administration control panel page with options on configuring the various services which might require API keys to work
 * extensible interface that allows extensions to supply further sharing backends.

Knowledge Prerequisite:
 * Required: Object-oriented PHP and Javascript
 * Useful: familiarity with social sharing APIs (Facebook/Twitter)

Available Mentors:
 * Nils Adermann
 * Marc Alexander

Improved E-mail Options
Summary: The current emailing options in phpBB are somewhat lacking. Mass-emails can only be sent to specific users or a single specified group (not multiple groups and users). Administrators cannot choose specific or all forums to trigger notifications for all users. Subscriptions are currently limited to specific forums; there is no way to subscribe to all forums with one click). This is a very commonly requested feature for small community forums where users do not regularly check for updates.

Expected results:
 * Merge gap between forums and something like Google Groups
 * Improve email notifications system for users as well as the mass-emailing system for administrators
 * Maintain "good practices" philosophy and ability for users to opt out of receiving notifications (even if enabled by default by the admin)

Knowledge Prerequisite:
 * PHP, familiarity with "good email practices"

Available Mentors:
 * Nils Adermann
 * Marc Alexander

Mentioning users in posts
Summary: Adding a feature which allows users to mention other users in their posts (for example, by placing "@username" in their message). Mentioned users are then notified according to their notification settings.

Expected results:
 * Creating a simple user interface for this functionality in the editor (e.g. dropdown menu with suggestions)
 * Allowing users to specify how they would like to be notified, when they are mentioned by someone else (email, notification etc)
 * Allowing the board administrator to enable/disable the feature, and also to allow them to restrict some of the user settings

Knowledge Prerequisite:
 * Required: Object-oriented design principles, basic Javascript, CSS and HTML knowledge
 * Useful: Familiarity with PHP and AJAX

Available Mentors:
 * Máté Bartus
 * Marc Alexander

Admin Control Panel UI/UX
Summary: The phpBB Admin Control Panel user interface has been in use since the release of phpBB 3.0 in 2007. Naturally, its design is no longer up-to-date with the ever evolving design language of current websites. In addition to that, concerns about it being over-complex and not intuitive to use have been voiced before.

Expected results:
 * Create a concept for a new ACP user interface structure keeping usability in mind
 * Create a concept design based on the structure concept using modern practices
 * Start implementation of a new user interface based on the concepts

Knowledge Prerequisite:
 * Required: PHP, HTML5, CSS, Photoshop or similar tools
 * Useful: JS, jQuery, previous UI design experience

Available Mentors:
 * Marc Alexander

phpBB and Symfony Integration Bundle
Brief Explanation: What we are looking for is a symfony bundle that provides intergration between phpBB and Symfony. The bundle could/should contain (You don't need to do all of this functionality yourself and are welcome to suggest additional things):
 * Sessions, Authorisation and Authentication Intergration. Logging into phpBB should authenticate you on the symfony site and symfony should be able to check/use phpBB permissions, get user data and use phpBB as a user provider through intergration with the security component.
 * An API for common functionality such as submitting posts, getting statistics, reading configuration data, get data on who is in groups and stripping bbcodes

Expected Results:
 * We expect all proposed features/improvements/changes completed
 * Should be able to be broken down into smaller manageable phases/chunks (one per feature or bug fix) and your timeline should detail these phases.

Knowledge Prerequisites:
 * PHP (Essential)
 * Symfony (Highly Preferred)
 * phpBB (Useful)
 * Git (Preferred).

Available Mentors:
 * Michael Cullum (Main Mentor)
 * Paul Sohier (Backup Mentor)

Area51/Development Micro-Site
Brief Explanation: Area51 is a micro-site for phpBB.com for development of phpBB. It contains the Continuous Integration, Development Discussion Board, API Documentation, Development Wiki, Bug Tracker and more. We would like this revamped in either a frontend way (new design that can have a header shared by all the web applications and design for the main informational pages) or new pages/features or both. Some suggested changes are below but you are not just limited to these and can suggest others in your proposal:
 * A New Getting Involved Page
 * More Statistics using data from Bamboo (CI), JIRA (Bug Tracker), Github and the development board
 * Intergration with JIRA, Bamboo and Github
 * Moving to phpDocumenter2 for API Documentation
 * New Area51 Style
 * Creating a parser for events docblocks and a UI to present the documentation in (Could be made a plugin for phpDocumenter2 if you choose)

Expected Results: We expect all proposed features/improvements/changes completed. It should be able to be broken down into smaller manageable phases/chunks (one per feature or bug fix) and your timeline should detail these phases.

Existing Code: https://github.com/phpbb/area51

Knowledge Prerequisites:
 * PHP (Essential)
 * Web Design & Usability (Essential)
 * HTML (Essential)
 * Symfony (Preferred)
 * Git (Preferred)
 * Javascript (Useful).

Available Mentors:
 * Michael Cullum
 * Paul Sohier (Backup Mentor)

Website UX/UI
Brief Explanation: This is a very open ended project. Essentially it is for any improvements to the UX/UI of the website. By this we mean anything that makes parts of the website easier to use, easier to navigate or more attractive. Your proposal should contain details on what you want to improve and how you want to improve it; samples (whether descriptions or mockups or user experience flow diagrams) of how it could end up being are highly preferred however we understand there will be a process of identifying the best way to improve things so this is not expected to be completely formed. Some suggestions for parts of the website we believe in particular could use improvement are:
 * Website navigation: Side menus, main menu, search - How easy is it to navigate through the website? Is it easy to find relevant information?
 * Home page (https://www.phpbb.com/) - Is it attractive? Is it easy for users to acomplish the most common tasks they come to our website for?
 * Landing pages (e.g. https://www.phpbb.com/support/) - Are they easy to use or are they too wordy?
 * Download page (https://www.phpbb.com/downloads/)- Is it obvious how to get our different downloads? Is it obvious how to get the update packages and which update package you need? Please note: The source code for this page is not yet open source but will be for the start of GSoC.
 * Documentation - Is the process for getting support/help obvious?
 * Search - How accurate is it? How could we improve it?

If you wish to have any data from our analytics software to assist you in this project then please request it from Michael Cullum.

Note: Any proposals redesigning the whole website style will be rejected.

Expected Results: We expect all proposed features/improvements/changes completed. It should be able to be broken down into smaller manageable phases/chunks (one per feature or bug fix) and your timeline should detail these phases.

Existing Code: https://github.com/phpbb/phpbb-website

Knowledge Prerequisites:
 * Web Design & Usability (Essential)
 * HTML/CSS (Essential)
 * PHP (Highly Preferred)
 * Symfony (Preferred)
 * Git (Preferred)
 * Javascript (Useful).

Available Mentors:
 * Michael Cullum
 * Yuriy Rusko
 * Paul Sohier (Backup Mentor)

Donation with Group Membership Extension
Summary: While there's a high demand, there are currently no validated extensions available for adding donation functionality to phpBB. After successful donation of a specified amount, users should automatically be added to a predefined group. As Payment Service Provider (PSP) at least PayPal should be supported.

Expected results:
 * validated phpBB extension which adds donation functionality to phpBB
 * allows admins to specify a minimum amount for automatic group membership
 * should support PayPal Instant Payment Notification (IPN) to detect when to add users to the group
 * Support for multiple PSP's should be taken into account during the complete development
 * If time allows: additional features such as setting a group membership duration, automatically send PMs about donation status, setting donation goals and built in support for additional PSP's can be added.

Knowledge Prerequisite:
 * Object-oriented PHP, SQL, phpBB Extensions system
 * Preferred: Knowledge of PSP's and specifically PayPal IPN

Available Mentors:
 * Derk Ruitenbeek
 * Matt Friedman

Advertisement Management Extension
Summary: The ability to easily handle advertisements in phpBB is often requested. Create a basic advertisement management extension that allows admins to add HTML/JS advertisement code to a number of predefined locations in the template.

Expected results:
 * A validated phpBB extension which adds advertisement management to phpBB
 * Allow admins to add HTML/JS advertisement code to predefined locations (ie: forum footer, header, after a topic's first post, etc.)
 * If time allows: additional features such as hiding advertisements for specific groups, allow image banner uploads from the ACP, ability to set end dates for specific advertisements.

Knowledge Prerequisite:
 * Object-oriented PHP, SQL, phpBB Extensions system

Available Mentors:
 * Derk Ruitenbeek
 * Matt Friedman

= Contacts =

These are all the people affiliated with phpBB who are assisting with the program as (backup) mentors or (backup) org admins. Their IRC Nicks are listed and you can find them on freenode in #phpbb-dev. They can help you with anything related to the ideas they are mentoring or general GSoC queries.

Org Admins:
 * Main: Yuriy Rusko - IRC: Marshalrusty OR YuriyRusko // Email: operations@phpbb.com // Timezone: UTC -5
 * Backup: Patrick Webster - IRC: Noxwizard // Timezone: UTC -6

Mentors:
 * Marc Alexander - IRC: Marc // Email: marc@phpbb.com // Timezone: UTC +1 // Focus: Core Ideas [Lead]
 * Michael Cullum - IRC: MichaelC // Email: michael@phpbb.com // Timezone: UTC // Focus: Website Ideas [Lead]
 * Matt Friedman - IRC: VSE // Timezone: UTC -8 // Focus: phpBB Extensions [Lead]
 * Nils Adermann - IRC: naderman // Email: naderman@phpbb.com // Timezone: UTC +1 // Focus: Core Ideas
 * Yuriy Rusko - IRC: Marshalrusty OR YuriyRusko // Email: operations@phpbb.com // Timezone: UTC -5 // Focus: Website Ideas
 * Paul Sohier - IRC: Paul999 // Email: paul@phpbb.com // Timezone: UTC +1 // Focus: Website Ideas/phpBB Extensions
 * Tristan Darricau - IRC: nicofuma // Email: nicofuma@phpbb.com // Timezone: UTC +1 // Focus: Core Ideas
 * Derk Ruitenbeek - IRC: Derky // Timezone: UTC +1 // Focus: phpBB Extensions
 * Máté Bartus - IRC: CHItA // Timezone: UTC +1 // Focus: Core Ideas