GSoC 2017 Project Ideas

GSoC 2017 Logo

Welcome to the GSoC 2017 Ideas Page

phpBB was a mentor organisation in Google Summer of Code 2017. On this page you can find ideas for projects that were listed in 2017 and which might inspire your application. The ideas for Google Summer of Code 2019 can be found on the GSoC 2019 Ideas page.

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

Extensions Ideas

Idea proposals


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. as well as an administration control panel page with options on configuring the various services which might require API keys to work. A extensible interface that allows extensions to supply further sharing backends.

Knowledge Prerequisites

  • Object-oriented PHP
  • Javascript required, jQuery or similar recommended
  • Familiarity with social sharing APIs (Facebook/Twitter) useful but not mandatory

Available mentors

Marc Alexander


User mentions

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

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

Knowledge Prerequisites

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

Available mentors

Máté Bartus, Marc Alexander, Tristan Darricau


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


Push notifications

Summary

Adding a feature which allows users to recieve desktop notifications from phpBB in realtime, as well as provide the neccessary backend features for other extension developers to easily extend phpBB with other types of push notifications (e.g. for mobile apps etc).

Expected results

  • Implementing the neccessary backend changes and adding events to the core
  • Implementing the desktop notification extension with
    • Multi-browser support
    • Options for both users and administrators to enable/disable the feature

Knowledge Prerequisites

  • Required: Strong understanding of OOP fundamentals, as well as, familiarity with PHP and JavaScript
  • Useful: Familiarity with test tools, and JavaScript build tools such as gulp

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 Prerequisites

  • Required: PHP, HTML5, CSS, Photoshop or similar tools
  • Useful: JS, jQuery, Gulp or similar JS build tool, previous UI design experience

Available mentors

Michael Miday, Marc Alexander


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


Advanced Styleguide driven development(SDD) system

Summary

Build a NodeJS based app to view, interact with, and dynamically build/manage components in StyleGuides(phpBB theme).

Expected results

  • Creating a simple user interface (material design spec) for the app using suggested CSS/SCSS/Twig formats developed in conjunction with mentors for extracting data from files
  • Must allow user to view example(s) of components and framework layer/partials while allowing for scaling between established breakpoints (Bootstrap Grid System) of responsive design.
  • Must allow viewing/editing of required files (SCSS, TWIG, JS), and allow for adding components.
  • Must integrate into phpBB template system (be able to read from and manipulate within phpBB styles dir).
  • Must be able to switch between styleguides.
  • Must build all styleguides to mentor defined folder structure or allow for customization of folder structure.
  • Must follow all coding standards set by mentors for SCSS, JS, TWIG. Project must use modern best practices and run on a NodeJS backend, relying on ExpressJS and or VueJS for routing & interface interactions.

Knowledge Prerequisites

  • Required: Object-oriented design principles, Javascript, NodeJS, ExpressJS and/or VueJS 2.0, twig.js, GulpJS, JQuery, AJAX, SCSS, CSS, XHTML
  • Useful: PHP, phpBB / phpBB Themes

Available mentors

Michael Miday


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


Extensions Ideas

Advertisement Management

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 Prerequisites

  • Required: Object-oriented PHP, SQL, JavaScript/jQuery, CSS, Git
  • Useful: phpBB Extensions system

Available mentors

Derk Ruitenbeek, Matt Friedman


Human Readable URLs

Summary

One of the most requested phpBB features is the ability to use human readable URLs. This extension should use the topic, forum and other page titles in the URL while still redirecting traditional URLs to these enhanced ones for backwards compatibility. (Also see the RFC at Area51)

Expected results

  • Add sanitised versions of topic and forum titles into the URLs
  • Maintain backward compatibility so regular phpBB URLs created before the enabling of this extension will still be usable and redirect to the Human Readable URLs

Knowledge Prerequisites

  • Required: Object-oriented PHP, SQL, JavaScript/jQuery, CSS, Git
  • Useful: phpBB Extensions system

Available mentors

Derk Ruitenbeek, Matt Friedman, Paul Sohier


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. 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.

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