Skip to content

Google Summer of Code

Samuel Alfageme edited this page Jan 23, 2018 · 101 revisions

owncloudGSoC

Check the offical GSoC page for general information such as schedule and requirement to participate in the program.

Tips

We will prefer students who have shown to have the skills needed to contribute to ownCloud. That means - if you've successfully managed to do a junior job, bugfix or other minor change to ownCloud and have gone through the process of integrating this at least once, we will know you've got a development setup and are capable of working with our process. We thus suggest to get started at https://owncloud.org/contribute/

Project Ideas

Here is a list of projects we suggest (GSoC projects are restricted to coding):

Ideas list for 2018 (or you can pick a project from the list of ideas from previous years)

However, students are encouraged to come up with their own project ideas and discuss them with potential mentors. Please join us on IRC or on our mailing list to discuss ideas.

ownCloud coordinators

2018 (current)

Coming Soon

Title Description Required knowledge Difficulty level Potential mentors
Automating ownCloud's Screenshots with Puppeteer Project draft Docker, nodeJS, Scripting 7️⃣ Samuel Alfageme
S3 integration as secondary storage Project draft PHP, ObjectStorage, FS Thomas Müller
Linux desktop integrations Project draft C++ 6️⃣
Advanced setup checks / hardening Project draft PHP, Scripting, Security
Screenshot sharing tool Project draft C++ 7️⃣
Wordpress-ownCloud implementation Project draft PHP, JS Florian Lenz
Integrate document scanner in Android app Project draft Java, Android David González

2017

ownCloud was accepted as project in GSOC 2017, some ideas which have mentors are:

Title Description Required knowledge Difficulty level Potential mentors
Gallery view in files app Kill gallery app and provide view extensions to the files app JS 8️⃣ Vincent, Felix
DropBox v2 integration We are currently using v1 DropBox API with will be EOL in June 2017 PHP 8️⃣
Fast LAN file sync Take advantage of sync clients being in the same local network, allowing faster sync times and reducing the server workload. C++, Computer Networks 8️⃣
Screenshot sharing service Some community contributors have developed already plugins for the ownCloud client to allow fast screenshot sharing. An integration on the client itself would ease the process forgetting about plugins. C++ 5️⃣
Desktop sync client integrations with OSS APIs Modern OSS offer APIs to integrate cloud services with their file explorers, enabling a much nicer user experience of use and feedback. C++ 7️⃣
Security App Addressing BruteForceAttacs, FileChanges on Core, 404 Detection, TOTP-MFA, Strong PW enforcement PHP 8️⃣ Peter
iOS App improvements integrate 3rd Party Password Managers C++ 5️⃣

Selected Projects

Student Project Mentor Proposal
Hemant Mann https://github.com/owncloud/files_external_dropbox @butonic GSoC 2017 : DropBox V2 Integration
Noveen Sachdeva https://github.com/noveens/js-owncloud-client @PVince81 GSoC 2017: ownCloud as a backend for web apps & JavaScript API client Library
Semih Serhat Karakaya https://github.com/owncloud/security @DeepDiver1975 GSoC 2017: Security App

🎞 Videos:

2016

ownCloud has been accepted as project in GSOC 2016, some ideas which have mentors are:

Title Description Required knowledge Difficulty level Potential mentors
implement incremental file sync in the desktop client Client team
Rewrite the Gallery app's frontend in ES6 The application's Javascript could do with a rewrite using proper Object Oriented techniques and using ES6 and a transpiler is the best way to succeed. See gallery#173 for details OOP, Javascript, ES6 8️⃣ Olivier Paroz (@oparoz)
Create an ownCloud app which provides CRUD access to the meta data stored in images Images can contain extra information embedded in the header. The goal is to extract that information at upload time and to store it in the database so that it can be used later for sorting or to give users more information about their files. See gallery#550 for details. Stretch goal is to do the same for videos PHP, AppFramework*, SQL 🔟 Olivier Paroz (@oparoz)
Flexible slideshow engines in Gallery Make it possible to use different slideshow engines in Files and Gallery by making the launcher engine agnostic. Implement Photoswipe as an engine and make Bigshot compatible. This project includes a lot of investigative work and it could very well be that the solution is to stick to a single engine, in this case, Photoswipe. Issue gallery#600 is about the Photoswipe implementation Javascript, PHP, CSS 7️⃣ Olivier Paroz (@oparoz)
Create a picture editor which integrates with Gallery There are 2 ways to reach the goal, depending on the candidate's knowledge of PHP or his or her willingness to learn the language. Either create a separate ownCloud app which would then make the edit action available to both Files and Gallery or create an editor from within Gallery. See gallery#265 for details Javascript, (PHP), (AppFramework*) 5️⃣-🔟 Olivier Paroz (@oparoz)
Make it possible to embed ownCloud galleries in another website It should be possible to create a special link which just renders Gallery's photowall, including the controls, but without the header and footer. The best way to generate the content would be via the API. See gallery#235 for details HTTP, Javascript, PHP 7️⃣ Olivier Paroz (@oparoz)
Add grid view to files Every file manager has a grid view which shows files using thumbnails. It's great for folders containing multimedia files. The rest of the UI (detailed view, navigation) doesn't change. The same actions are available. See core#17357 for details Javascript, CSS, (PHP) 6️⃣ ???
Add support for HSTS and Public Key Pinning to Desktop client HSTS and Public Key Pinning harden the existing TLS layer. Our desktop client (and mobile clients) are however not supporting it. C++ @LukasReschke
ownCloud Demo upgrade to one instance per user dynamically spun up in containers The demo of ownCloud should be containerized in a way that each user gets their own installation to try out ownCloud. @LukasReschke
Update external storage apps to the new storage API oC 9 brought new capabilities with regard to integrating with underlying storage. Update the existing storage apps Dropbox and Google Drive to the new API. Perhaps as stretch goal, add new storage systems like iCloud or OneDrive. It helps if you have some experience with the API's of Dropbox, Google Drive etc but otherwise it is a matter of reading documentation. 7️⃣ @icewind1991
Improve Collabora Cloudsuite ownCloud app code cleanup, add unit tests and improve usability like allowing to edit right from files app, returning to previous view when closing app etc Most of the work is on the ownCloud side 5️⃣ @kendy and @timar
Calendar/Contact/Mail integration add invitations and contacts if received in mail; use mail to send out invitations & contacts; create appointments from mail with ppl in CC, autodetect subject and date/time etc 5️⃣ @georgehrke
import in Contacts app supporting importing contacts in a variety of formats 246 6️⃣ @DeepDiver1975
Integrate Tasks with Notifications and Activity integrate with Activity and Notifications 288 5️⃣ @raimund-schluessler
Create a public calendar Allow public calendar, with settings like show details or only busy 411 and 22735 7️⃣ @georgehrke
Improve Spreed integration Improve the integration with notifications and Activity and more 8️⃣ @longsleep
Add mail account management & alias support & signature management to the ownCloud Mail app. Right now mail accounts can only be added or removed. It should be possible to edit mail accounts, maintain aliases and manage signatures. 625 122 654 PHP, AppFramework*, JS (Marionette) 6️⃣ [@ChristophWurst] (https://github.com/ChristophWurst) & [@Gomez] (https://github.com/Gomez)
Grouping of message threads (threading/conversations) in ownCloud Mail. Messages in the same thread are grouped and displayed as such. This feature needs deep understanding of Backbone/MarionetteJS as some refacoring is needed to get started. 1314 21 89 PHP, AppFramework*, JS (Marionette) 8️⃣ [@ChristophWurst] (https://github.com/ChristophWurst) & [@Gomez] (https://github.com/Gomez)
Support for HTML messages in the Mail app Make it possible to compose, draft, forward and answer HTML messages. For that feature, a rich editor has to be integrated into the existing client. 605 782 PHP, AppFramework*, JavaScript 6️⃣ [@ChristophWurst] (https://github.com/ChristophWurst) & [@Gomez] (https://github.com/Gomez)
*Appframework is the tool on which ownCloud apps are built. It's not necessary to have used it before, but you will have to learn how it works, preferably by building a simple app before the GSoC starts.

The difficulty level rises as the project requires more technologies to master, because it makes it more complex, not necessarily because it's harder to write code.

GNOME & ownCloud

We talked to Lasse (@sils1297) from GNOME about cooperate and try to propose projects that integrate GNOME and ownCloud.

Current ideas for this integration (GNOME & ownCloud people):

  • integrate GNOME Documents with ownCloud Documents (live collaboration also from desktop!): GNOME: Carlos? & ownCloud: @VicDeo/ @PVince81?
  • integrate GNOME Web | Bookmarks and History with ownCloud GNOME ? & ownCloud: @blizzz
  • Mail (accounts via GOA): Debarshi? & @DeepDiver1975/@jancborchardt (See GOA instead)
  • Chat (accounts via GOA): Debarshi? & ? (See GOA instead)
  • Gnome Online Accounts Integration
    • ownCloud could use a GOA like solution which lets the user enter their account details once and then sets up ownCloud Mail, Contacts, Calendar and more.
    • Step 1: Create/use a GOA-like API for ownCloud
    • Step 2: make some prominent ownCloud apps use this API
    • Step 3: Sync account info between GNOME GOA and ownCloud Accounts
  • Notes: Pierre-Yves & @Raydiation/@Henni
    • Already there. Bugfixing and markdown support needed according to Pierre-Yves. Not sure if it makes a collaborative GSoC Project.
  • GNOME/ownCloud News: Vadim? & @Raydiation
  • GNOME/ownCloud Music (Ampache streaming): Vadim/Bastien & @MorrisJobke
    • Music plans to do GOA integration as per their wiki page. GOA integration to ownCloud could be a project. Contact to Vadim/Bastien needed.
  • GNOME/ownCloud Maps (favorites, routes, searches): Jonas & ?/@jancborchardt and @brandje
  • GNOME/ownCloud Tasks: Georges & @raimund-schluessler/@Henni
  • Use ownCloud key-value storage to store various settings from the GNOME desktop (GOA, desktop settings,...) @schiesbn

GNOME wiki ideas page

2014 (under openSUSE)

2013 (under openSUSE)

2012 (under KDE)

2011 (under KDE)