GSoC 2014 Project Ideas
Welcome to the GSoC 2014 Ideas Page
phpBB was a mentor organisation in Google Summer of Code 2014. On this page you can find ideas for
potential projects that were listed in 2014.
Make sure to also read the GSoC Instructions.
Content
Core Ideas
- Social Sharing Features
- Improved E-mail Options
- Extending Custom Profile Fields
- Command Line Interface
Website
Extensions Ideas
Core Ideas
Social Sharing
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
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
Extending Custom Profile Fields
Summary
Currently phpBB has a number of hardcoded profile fields (mostly IM like: ICQ, WLM, Yahoo, AOL) as well as a system for custom profile fields (CPF), which can be specified by the board administrator. The hardcoded profile fields should be converted to CPFs. To ensure that we have the same functionality afterwards, it should be possible to sort and search user lists by CPF (configurable) in various places. When this is done, we should disable out dated profile fields for new installations and add newer services like Skype, Facebook, Twitter, etc. These new fields as well as converting the hardcoded once might also require adding new profile field types (Allowing email address and verifying them, and similar stuff)
Knowledge Prerequisite
PHP, HTML
Further information
- RFC for conversion on Area51
- RFC for modernizing on Area51
- RFC for more types on Area51
- Idea on phpBB.com
Available Mentors
Joas Schilling
Command Line Interface
Summary
A number of maintenance tasks, such as updating a forum could be made more accessible to system administrators by making them run on a console. Some tasks, for example phpBB's cron can already be run on the console and it would be great to unify these into a single phpBB CLI utility. Further functionality could include installing and updating phpBB, the management of extensions or modifying phpBB configuration settings. The command line interface should be built using the Symfony Console component. Please keep in mind that you should not duplicate code. So when building a command line interface for something that already has a web interface you will be expected to refactor the web interface into a backend that can be shared by the web frontend and the command line utility. When planning command line features you need to consider how much time this step will consume.
Expected results
A phpBB command line utility making a number of administrative and maintenance available without a web browser. Clear separation of functionality into reusable APIs shared by web based and command line based tools, and a command line frontend.
Knowledge Prerequisite
Object-oriented PHP required, familiarity with command line utilities useful but not mandatory.
Further information
Available Mentors
- Nils Adermann
- Andreas Fischer
Website Ideas
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, 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
- Integration 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: GitHub 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)
Extensions Ideas
Karma
Summary
The idea behind this extension is to add a way for users to publicly give positive or negative feedback about a user based on their contributions to the community (i.e. posts and topics, but should have a way for other extensions to add items that can receive Karma). Parts of this extension were already created in GSoC 2013: GSoC 2013 Karma Extension. You will finish this extension by completing not fully finished features like the MCP implementation, updating it to incoporate any recent changes to phpBB 3.1 and the extension system, and possibly improving any already existing code.
Expected results
Creation of a fully functional extension that adds a Karma system.
Knowledge prerequisites
- PHP
- HTML
- JavaScript/jQuery
Available Mentors
- Joas Schilling
- Marc Alexander
Extension Pre-Validator
Summary
The phpBB.com currently provides MOD authors with a MOD Pre-Validator that checks a Modifcation for any common mistakes, misused functions, and similar issues that might cause major flaws and prevent MODs from being approved to the phpBB.com customisation database. The Extension Pre-Validator would be the counterpart for Extensions. It will check against the phpBB 3.1 coding guidelines, packaging rules for Extensions, deprecated uses of functions and classes in phpBB 3.1, and similar issues. As it will mainly be used for the customisation database and on websites, it should be possible to call the EPV like a common script on a website or from the customisation database (implementation in the customisation database is however not part of the task). All tests the EPV runs should be covered by unit tests.
Expected results
A fully functional testing suite for Extensions that checks for common issues
Knowledge prerequisites
- PHP
- HTML
- Git (Preferred)
- Symfony (Preferred)
Available mentors
- Joas Schilling
- Marc Alexander
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:
- 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.
- 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.