Skip to content

Project ideas

wakeup edited this page Dec 6, 2014 · 65 revisions

Note: you are welcome to email the mentors of the projects for more information, but please add in cc the full list of mentors and do not send distinct emails to each of them.

Coding

Design

Documentation

Browser extensions for ownCloud

  • Brief description: Currently we have desktop integration of ownCloud with a sync client, but not with a browser integration. Of course we can use web interface to do all actions, but extensions for Chrom(e|ium) and Firefox will decrease the amount of time to do ownCloud-related stuff.

  • Expected results: Extensions for Chrom(e|ium) and Firefox browsers will be ready to e.g:

    • Adding one entry to context menu if the cursor is over a link - "Download to ownCloud" (for files app)
    • An icon similar to Gmail Checker which informs new feeds (News app)
    • A simplistic music player icon which could get the playlists and play them without requiring to go to ownCloud
  • Knowledge prerequisite: minimal: HTML, CSS, and JavaScript.

  • Difficulty: easy-medium

  • Mentors: ??

Reference Management App (similar to Zotero)

  • Brief description: Reference management software helps researchers to keep their personal libraries organized. One of the most used reference manager is Zotero. Whereas it is already possible to keep the files stored by Zotero synced through ownCloud via webDAV, the sync of meta-data requires an Zotero server. The ownCloud reference app will help the users to collect, handle and sync metadata of papers that are uploaded to ownCloud storage. For details see this page the Zotero and this discussion on the ownCloud mailing list.

  • Expected results: The project consists of implementing an ownCloud app to store metadata from research articles and, if time permits, a browser (Firefox/Chrome) plugin that interfaces the app. The ownCloud app needs to do at least the following things: 1) scan ownCloud filesystem (or a selected folder) for PDF files; 2) extract metadata from these files using some PHP library, such as pdfparser; 3) allow the user to annotate pdf files and store annotations (the format of which needs to be decided).

  • Future development: Interfacing this app with other existing reference manager (both desktop and mobile)

  • Knowledge prerequisite: minimal: PHP and Javascript, preferred: AngularJS it's definitely a plus if the student has experience with reference management software.

  • Difficulty: medium

  • Mentors: Alessandro Cosentino (@cosenal), others?

ownCloud as backend for web apps

  • Brief description: An unhosted web app is an application that runs entirely in the browser. Since unhosted web apps do not have a database or storage server of their own, they rely on the user to connect their own per-user storage at runtime. Also when an application does have a server, it can be more efficient to let the client-side code communicate directly with an API, instead of letting all traffic go via the application server as an extra hop. The idea of this GSoC project is to 1) add CORS headers to the API, 2) add support for the implicit-grant flow to ownCloud's OAuth dialog, and 3) publish a small javascript library that makes it easy to use the ownCloud API in an unhosted web app. To get an idea of what this would look like, check out the JavaScript libraries provided by for instance GoogleDrive or Dropbox.

  • Expected results: Support for cross-origin API access in ownCloud, a small JavaScript library, and some documentation, aimed at html5 app developers, describing how to use it. With this, it will be possible to "log in" to a website with your ownCloud instance as your personal data storage, and all user data on this website will come from, and be saved to, your ownCloud account.

  • Knowledge prerequisite: JavaScript, PHP, basic understanding of HTTP debugging (browser developer tools as well as WireShark or similar), capacity to understand the complex request flows of both CORS and OAuth.

  • Difficulty: medium/difficult

  • Mentors: @michielbdejong, Alessandro Cosentino (@cosenal), Jan-Christoph Borchardt (@jancborchardt, design)

Get rid of index.php within the URL

  • Brief description: ownCloud is currently having index.php in all URLs. For example when accessing the calendar you're opening /index.php/apps/calendar/ and when sharing a file you're accessing /index.php/s/{token}. The goal of this task is to get rid of the index.php within the URL and updating all APIs to support this.

  • Expected results:

    • Create mod_rewrite rules for Apache to get rid of the index.php from the URL
    • Evaluate ways for IIS and nginx how to get red of index.php from the URL
    • Remove all hardcoded appearances of index.php from the code.
    • Update ownCloud APIs to generate correct links
    • Update ownCloud routing to redirect to URL without index.php
  • Knowledge Prerequisite: PHP on server side, also some JS

  • Skill level: easy

  • Mentors: Lukas Reschke (@LukasReschke)

Create a dedicated Add-On for Kodi (former XMBC)

  • Brief description: ownCloud currently has WebDAV, CalDAV, and CardDAV support and an addon supports these standards can be installed on Kodi to access the files and data on your cloud. However, a dedicated addon would be very nice to collect all functionality of ownCloud in one place.

  • Expected results:

    • Allow users to view their files and view them (or play audio/video).
    • Allow users to view their calendars (maybe readonly would be sufficient at this stage)
  • Knowledge Prerequisite: XML, Python

  • Skill level: medium

  • Mentors: ??

ownCloud as a Backup Application

  • Brief description: ownCloud currently has desktop clients to sync directories/files. It will be good idea to have a new client to use ownCloud as a backup solution. The second option can be a new feature added to existing desktop clients.

  • Expected results:

    • Allow users to choose the directories to backup.
    • Create a ZIP or TAR.GZ archive and upload it to specified ownCloud server.
    • Enable users to set up scheduled jobs (once a week, etc.)
  • Knowledge Prerequisite: C++ (Qt), ownCloud API

  • Skill level: medium

  • Mentors: ??

Reveal.js/Impress.js Presentation Editor Integration

  • Brief description: Reveal.jsImpress.js a presentation tool based on the power of CSS3 transforms and transitions in modern browsers. Currently there is a text-editor for Reveal.js, but not a GUI. Strut can be integrated to use ownCloud for a visual editor.

  • Expected results:

    • Integrate Strut (or Strut2) into ownCloud
  • Knowledge Prerequisite: JavaScript, CSS, ownCloud app development

  • Skill level: easy

  • Mentors: ??

Old Projects

Read later app (similar to Pocket/Instapaper)

  • Brief description: A combination of web and mobile apps which allow people to save websites and articles for later and to read offline. This should integrate with the already existing Bookmarks app, or supersede it. Also it should use the same API as the already existing open source Wallabag – then we can also use their already existing Android app and browser extensions.

  • Expected results: Modification of the Bookmarks app to also save and be able to view the content of webpages. Expose the same API as Wallabag so that their apps can be reused.

  • Knowledge prerequisite: Javascript, AngularJS, databases, APIs

  • Difficulty: medium

  • Mentors: Jan-Christoph Borchardt (@jancborchardt, design), Alessandro Cosentino (@cosenal)

Music app: playlist functionality

  • Brief description: The Music app currently just displays your whole music collection. It would be useful to organize this into playlists.

  • Expected results: Management of playlist inside the Music app. The playlists should be displayed in a sidebar. Playlists consist of songs and need to have a list-like layout (similar to the Files app).

  • Knowledge prerequisite: PHP, JavaScript, Useful: AngularJS

  • Difficulty: medium

  • Mentors: Morris Jobke (@MorrisJobke), Jan-Christoph Borchardt (@jancborchardt, design)

Camera Backup Mobile App

  • Brief description: The aim of the project is to create a Firefox OS app that automatically uploads pictures and video taken by a Firefox OS device to ownCloud using the protocol WebDAV. This would be similar to the »Instant upload« feature on the Android ownCloud app. The Bitcasa Camera Backup app does a similar thing, but it's not open-source and it only allows to upload to the Bitcasa cloud. But it showcases how the automatic upload could work.

  • Expected results: Enable people with a Firefox OS device to instantly upload their taken pictures. This should be fully automatic after the initial connection to the ownCloud server. Note: the student doesn't need to own a Firefox OS device. Everything can be implemented by using the Firefox OS simulator plug-in

  • Knowledge prerequisite: We don't require familiarity with Firefox OS or any other mobile platform, but the students needs to have a good knowledge of Javascript and ideally of some JS MVC framework like AngularJS.

  • Skill level: medium-difficult

  • Mentors: Alessandro Cosentino (@cosenal), Jan-Christoph Borchardt (@jancborchardt)

Calendar app in angularJS

  • Brief description: The ownCloud Calendar app is one of the most used apps we have. We need to rewrite the calendar app in angularJS in order to achieve a much better extensibility and maintainability. Combined with the JSON API, it will provide an rich and full-featured easy-to-use interface for our users.

  • Expected results:

    • rewrite calendar webinterface in angularJS (for events as well as calendars itself)
    • use JSON REST API
    • make things like attendees, reminders, timezone, etc. available for editing in the webinterface
    • better handling of recurring events (make it possible to edit only one of a series of events)
  • Knowledge Prerequisite: PHP on server side and AngularJS on client side

  • Skill level: medium

  • Mentors: Georg Ehrke (@georgehrke), Jan-Christoph Borchardt (@jancborchardt, design)