Skip to content

GSoC 2016

Olivier Paroz edited this page Apr 26, 2016 · 25 revisions

Gallery has a number of projects up on the "ideas list" for this year's GSoC, but any feature request already mentioned on Github can be used as a base for a project and candidates are welcome to add their own so that they can be discussed among community members to see if it would fit with Gallery's goals.

Applications are now closed, thank you to all of you who have sent in proposals. I hope you'll stick around even if you're not selected for this year's GSoC. For a lot of you, there is always next year :)

Due to the intense competition, it is strongly advised to discuss early on with @oparoz about your project, so that you can be steered in the right direction.

Some tips for students

  • Read the GSoC manual for students. That way, everybody will be on the same page in terms of expectations and content of a proposal
  • Use the issue defined for each project to ask your questions. That makes it easier to share answers and changes with everybody
  • Bear in mind that not all projects are well defined. Some are rough ideas and a good opportunity for you to put on your strategic cap
  • Try to fix issues labelled "Junior job" on your own. Read comments in the code, learn about the structure, etc.
  • Don't hesitate to ask questions if you're stuck, even if it's while fixing a "Junior job"
  • The maintainer prefers long term solutions over quick hacks, because it makes it easier to maintain the project. Take the time to learn the app's architecture and don't hesitate to suggest improvements
  • Review PRs and issues labelled "To review" or "QA - Testing" even without having been mentioned. It's a good way to try and understand how more complex pieces of work are put together and it also speeds up the release process. Be thorough though. It's important to test as many use cases as possible in order to avoid letting users down, so help improve the test plan provided in the PR

Some Appframework app ideas

If you intend on building an ownCloud app this Summer, it will be very useful to have built one before. Take a simple idea and turn it into an app. There is no need to add more than the basics, but everything should be unit tests

Here are some basic examples :

  • Generate a thumbnail when a new image is uploaded
  • Store an image's original size in the DB
  • Store whether an uploaded video can be played with an HTML5 video player

Even though these apps might not be very useful on their own. The work you do can be ported to the Gallery project later and help introduce new features.

Some requirements

  • Set up a development environment with core and Gallery. You have to be able to load the app to be able to debug it
  • Read the coding guidelines
  • Be familiar with an IDE letting you work with both PHP and Javascript files. We recommend PHPStorm which is free for students. Here is the code style config you can use to make sure your code is properly formatted
  • Be familiar with git. Pulling, rebasing, squashing, etc.
  • Set up configuration files both in the top album as well as in sub-albums in order to be able to test the configuration features
  • You will be expected to write and run tests both in PHP and Javascript

Guidelines

  • Think about your users. An app should be easy to use, features easy to discover
  • Look at competing products (design, flow)
  • If you want to implement a missing feature look at how core or other apps are doing it
  • Get familiar with and re-use ownCloud's design (CSS, GUI in JS)
  • Look for the cleaner implementation, even if that means writing more code
  • Unit test early. It really helps to write them first for concepts as it will give you a better idea of what the method should look like

Technologies

  • PHP Composer
  • ownCloud AppFramework
  • Codeception and/or PHPUnit
  • Bower
  • jQuery
  • Backbone
  • Handlebars