GSoC 2019 Project Ideas

GSoC 2019 Logo

Welcome to the GSoC 2019 Ideas Page

phpBB is applying to participate as a mentor organisation in Google Summer of Code 2019. 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. Feel free to discuss any project ideas you might have in addition to the ones listed here. Make sure to also read the GSoC Instructions.

Content

Core Ideas

Idea proposals


Core Ideas

REST API

Summary

Implement a RESTful API that can be used to interact with phpBB from an outside source. Previous work on a RESTful authentication API can and should be used as a base for this (see the PR).

Expected results

  • Update previously created code to be compatible with latest changes in phpBB
  • Add more API functionality like adding or viewing posts / topics
  • Allow the board administrator to enable/disable the API features
  • Extensively cover the API with tests

Knowledge Prerequisites

  • Required: Object-oriented design principles, PHP
  • Useful: Previous experience with APIs

Available mentors

Marc Alexander, Tristan Darricau, Derk Ruitenbeek


Admin Control Panel UI/UX

Summary

The phpBB Admin Control Panel has been in use since the release of phpBB 3.0 in 2007. Naturally, its design and codebase is no longer manageable with the ever evolving trends and practicies. 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
  • Leverage a custom implimentation of Bootstrap 4 using GulpJS and Twig to build a modern codebase
  • Re-create all JS functionality using jQuery and modern practices.
  • Ensure all code is minimized and adheres to our 3.3 coding standards

Knowledge Prerequisites

  • Required: PHP, Twig, HTML5, JS, jQuery, SCSS, GulpJS, Bootstrap 4
  • Useful: previous UI design experience

Available mentors

Michael Miday, Marc Alexander


Control panel module system

Summary

The module system used for the Administration Control Panel (ACP), Moderator Control Panel (MCP), and User Control Panel (UCP) was initially created for phpBB 3.0 and includes features such as adding, removing, modifying, and ordering modules via an interface in the ACP. Some of the design choices for this system have come of age and are either no longer used, rarely used by admins, or are just outdated in the way they are coded.

In this project, a student will be tasked with creating a basic module system that will also support these features using the latest design principles and by potentially employing existing tools provided by Symfony or other open source libraries and frameworks that might be of help.

Expected results

  • Design concept for control panel module system
  • Implement and demonstrate proof of concept system

Knowledge Prerequisites

  • Required: Git, PHP
  • Useful: Symfony, YAML, previous phpBB experience

Available mentors

Marc Alexander


Doctrine DBAL

Summary

Replacing the phpBB Database Abstraction Layer (DBAL) with Doctrine DBAL or a similar library. The tasks includes making it possible to use the library's interface directly, and also wrapping it with phpBB's DBAL interface.

Knowledge Prerequisites

  • Knowledge of the DBAL library
  • Understanding phpBB's DBAL interface
  • PHP, OOP, database knowledge

Available mentors

Máté Bartus, Marc Alexander, Tristan Darricau


CKEditor5 BBCode parser

Summary

Creating a BBCode output converter and refactoring the current editor backend into an extension.

Expected results

  • An extensible BBCode parser for CKEditor which works with the built in BBCodes and provides an interface to extend it
  • Refactoring the editor backend

Knowledge Prerequisites

  • ES6, JavaScript, OOP knowledge and familiarity with JS build tools.
  • Familiarity with PHP and the phpBB extension system

Available mentors

Máté Bartus, Marc Alexander, Michael Miday


Converter Framework

Summary

In addition to installation and updates from previous versions, phpBB also supports conversions from other forum software. However, converters usually can only target a certain software at a specific version. As a result, the possible conversion paths to phpBB are not as easy and straightforward as one might expect and usually requires an extra file that takes care of the actual conversion process. The goal of this project is to create a converter framework that can convert the database entries from any other BB software to phpBB's format with a simple configuration file that defines the "steps" it needs to take during the conversion process.

Expected results

  • Create a converter framework that can be easily adjusted to migrate database entries to phpBB
  • Support the definition of migrations using a configuration file

Knowledge Prerequisites

  • Required: PHP, SQL
  • Useful: Symfony, YAML, MySQL or similar

Available mentors

Marc Alexander, Máté Bartus


Improved moderator tools

Summary

Moderator actions within a topic like "Split topic" and "move posts" needs a detour through the MCP. Changing the mcp-tabs (Move posts, split topic etc.) won't change the select-input-field in mcp, too. This leads to a couner intuive behaviour. The idea is to add a checkbox to each post, make each post selectable and open a "alert"-similar popup to present the moderator options directly to the user. So select to posts, select "move posts" opens an alert-popup where you can look for and enter a topic ID. Split topic analog to that behaviour. In addition to that, possible improvements to moderation of topics and posts should be assessed and implemented in order of importance to give a moderators a more powerful and easy to use set of tools.

Expected results

  • Add a checkbox or similar way of selecting posts to split off or move to the topic view. This should be as intuitive as possible.
  • Improve Moderator Control Panel usability, e.g. by reviewing interaction paths & usability

Knowledge Prerequisites

  • Required: Git, PHP, JavaScript, AJAX, HTML
  • Useful: CSS, previous phpBB experience

Available mentors

Christian Schnegelberger, Marc Alexander


Proposing your own idea

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