GSOC 2013: Difference between revisions

From GNU MediaGoblin Wiki
Jump to navigation Jump to search
 
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
We are participating in [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 GSOC 2013] (if we're accepted, that is!)
We are participating in [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 GSOC 2013] via the [http://www.gnu.org/software/soc-projects/ideas-2013.html#mediagoblin GNU umbrella]!

We are also participating in [[Outreach Program for Women 2013]]... see that page for specific information about that program, but the projects suggested on this page are the same as those for OPW 2013 :)


To both students and mentors, please read up on the [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2013/help_page GSOC 2013 help page]!
To both students and mentors, please read up on the [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2013/help_page GSOC 2013 help page]!
Line 8: Line 10:


But then:
But then:
* Submit your application. Please see the application submission template on the [http://www.gnu.org/software/soc-projects/guidelines.html GNU GSoC guidelines page]. (You can also use this template for OPW, though they provide another template; it's fine to use that if you like.)
* Submit your application (details coming soon)
* [http://mediagoblin.org/pages/join.html Join us] on IRC and on our mailing lists.
* [http://mediagoblin.org/pages/join.html Join us] on IRC and on our mailing lists.
* Set up a development environment via our [[HackingHowto]]
* Set up a development environment via our [[HackingHowto]]
* If you have never done web development in python before, MediaGoblin is a pretty good place to start! However, we highly recommend going through the [https://docs.djangoproject.com/en/1.5/intro/tutorial01/ Django tutorial]... this isn't a requirement, but it will help you be better prepared.
* Work on a small task, and mention it in your application. The [http://issues.mediagoblin.org/query?status=!closed&keywords=~bitesized bitesized list] is often helpful.
* Also, be aware when submitting: both Outreach Program for Women and Summer of Code applicants are expected to work '''40 hours per week'''... so, a full time internship! If you propose, please be sure you are ready to make that level of commitment.


It's important that you communicate... most MediaGoblin communication happens on IRC, so you should [http://webchat.freenode.net/?channels=mediagoblin join us there] and discuss (#mediagoblin on irc.freenode.net)!
It's important that you communicate... most MediaGoblin communication happens on IRC, so you should [http://webchat.freenode.net/?channels=mediagoblin join us there] and discuss (#mediagoblin on irc.freenode.net)! Please, please join our channel and introduce yourself. We'd love to hear from you!


= Possible projects =
= Possible projects =
Line 27: Line 32:


* Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/
* Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/
* Also take a look at Chris' post about this, it has some important design notes: http://lists.mediagoblin.org/pipermail/devel/2013-April/000491.html
* Blogging should be a plugin
* Blogging should be a plugin
* To make blogging more useful (either to the blogging plugin or to external blogging engines) it would be good to have much better embedding support in MediaGoblin. So improving embedding support should be mentioned in the proposal.
* HTML with something like TinyMCE integration would be good. HTML would need to be cleaned on the backend.
* HTML with something like TinyMCE integration would be good. HTML would need to be cleaned on the backend.
* Maybe other types would be allowed (markdown, restructured text) though I'm not sure how much more complex that makes cleaning HTML output.
* Maybe other types would be allowed (markdown, restructured text) though I'm not sure how much more complex that makes cleaning HTML output.
* What about commenting? Would we need a seaparate comments table?
* What about commenting? Would we need a seaparate comments table?


Possible Mentor: spaetz
== Document / presentation system ==

There's some work toward a [http://issues.mediagoblin.org/ticket/391 document type] in MediaGoblin, but to get a *really nice* document type, it might take some work.

* Conversion from various documents to PDF via libreoffice on the backend
* On-page reading with pdf.js
* Preservation of original file, with ability to download
* Other things???

'''Possible mentors:''' Nathan Yergler, Aeva NTSC


== Pluggable user authentication & implementations ==
== Pluggable user authentication & implementations ==


We'd like a pluggable user authentication module. Some people want to use things like LDAP. Some people would also like BrowserID integration.
We'd like a pluggable user authentication module. [http://openid.net/ OpenID] is very common authentication method, used e.g. by Google. [http://oauth.net/ OAuth] is also commonly (mis?)used (e.g. by Facebook and Twitter), although it was never designed for this purpose. Some people would also like [https://github.com/mozilla/browserid Persona/BrowserID] integration. Some people want to use things like [http://en.wikipedia.org/wiki/LDAP LDAP].


With our new work toward pluginification it would be good to see the structure for user authentication to be interface'ified. It would also be good to have implementation for several types of logins such as BrowserID, LDAP, and central authentication system stuff.
With our new work toward pluginification it would be good to see the structure for user authentication to be interface'ified. It would also be good to have implementation for several types of logins such as OpenID, Persona/BrowserID, LDAP, and central authentication system stuff.


'''Possible mentors:''' Nathan Yergler
'''Possible mentors:''' Nathan Yergler, [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]


== Administrative interface / moderation tools ==
== Administrative interface / moderation tools ==
Line 59: Line 57:
* More generalized panel for looking at things being processed
* More generalized panel for looking at things being processed
* ???
* ???

'''Possible mentors:''' --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:02, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]


== Processing panel improvements ==
== Processing panel improvements ==
Line 70: Line 70:
Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.
Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.


'''Possible mentors:''' --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:03, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]
== Pluginifying media types ==

Media types currently have their own way of being configured separately. It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata). This will also allow media types to define things like special-case views, etc.

Possible mentors: --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:02, 1 April 2013 (EDT)


== User upload account limits ==
== User upload account limits ==
Line 81: Line 77:


--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:41, 30 March 2013 (EDT) <code>mediagoblin.storage.StorageInterface</code> should probably implement a <code>get_size</code> method or similar.
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:41, 30 March 2013 (EDT) <code>mediagoblin.storage.StorageInterface</code> should probably implement a <code>get_size</code> method or similar.

'''Possible mentors:''' [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]


== Search interface ==
== Search interface ==


We don't have any sort of search for media whatsoever at present. Obviously people want this!
We don't have any sort of [[Search]] for media whatsoever at present. Obviously people want this!


There's been some discussion of a search interface that would be federated, but for the scope of this, we don't need to worry about that. It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.
There's been some discussion of a search interface that would be federated, but for the scope of this, we don't need to worry about that. It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.


'''Possible mentors:''' Nathan Yergler, Aeva NTSC
'''Possible mentors:''' Nathan Yergler, Aeva NTSC, [[User:Cwebber|Chris Webber]]

== Pluginifying media types ==

Media types currently have their own way of being configured separately. It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata). This will also allow media types to define things like special-case views, etc.

This might actually be very simple, so consider making a proposal that's directly combined with the media type reprocessing framework below.

Possible mentors: --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:02, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]]


== Media type reprocessing framework ==
== Media type reprocessing framework ==

This one is tricky! Basically, allowing media to go back into processing... ie, resizing an image to a new size, re-transcoding video, etc. There are several cases where you may want to reprocess things: if your processing step failed, if you want to resize images to new sizes, if you want to extract new and relevant data from old videos, etc.

To understand this, please read up on:

* the [[processing]] system
* The [[MediaTypeRefactor|media type refactor]] page
* [[Feature_Ideas/Reprocessing]]

'''Possible mentors:''' [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]

Latest revision as of 15:52, 21 January 2014

We are participating in GSOC 2013 via the GNU umbrella!

We are also participating in Outreach Program for Women 2013... see that page for specific information about that program, but the projects suggested on this page are the same as those for OPW 2013 :)

To both students and mentors, please read up on the GSOC 2013 help page!

How do I apply as a student?

Well, we need to be accepted as a mentoring org first :)

But then:

  • Submit your application. Please see the application submission template on the GNU GSoC guidelines page. (You can also use this template for OPW, though they provide another template; it's fine to use that if you like.)
  • Join us on IRC and on our mailing lists.
  • Set up a development environment via our HackingHowto
  • If you have never done web development in python before, MediaGoblin is a pretty good place to start! However, we highly recommend going through the Django tutorial... this isn't a requirement, but it will help you be better prepared.
  • Work on a small task, and mention it in your application. The bitesized list is often helpful.
  • Also, be aware when submitting: both Outreach Program for Women and Summer of Code applicants are expected to work 40 hours per week... so, a full time internship! If you propose, please be sure you are ready to make that level of commitment.

It's important that you communicate... most MediaGoblin communication happens on IRC, so you should join us there and discuss (#mediagoblin on irc.freenode.net)! Please, please join our channel and introduce yourself. We'd love to hear from you!

Possible projects

Here are a list of projects that students may wish to apply for for GSOC 2013:

Blogging system

We've had an increasing number of people ask if MediaGoblin would be a useful blogging system. The answer is that at present, it isn't: even though we support an ascii art media type, media types aren't really the right way to handle blogging since they don't really fit with the "gallery" style of editing things in MediaGoblin.

But people are interested in something that's more along the lines of Tumblr: a blogging platform with good media embedding integration. In many ways, MediaGoblin is perfect for this!

Some thoughts:

  • Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/
  • Also take a look at Chris' post about this, it has some important design notes: http://lists.mediagoblin.org/pipermail/devel/2013-April/000491.html
  • Blogging should be a plugin
  • To make blogging more useful (either to the blogging plugin or to external blogging engines) it would be good to have much better embedding support in MediaGoblin. So improving embedding support should be mentioned in the proposal.
  • HTML with something like TinyMCE integration would be good. HTML would need to be cleaned on the backend.
  • Maybe other types would be allowed (markdown, restructured text) though I'm not sure how much more complex that makes cleaning HTML output.
  • What about commenting? Would we need a seaparate comments table?

Possible Mentor: spaetz

Pluggable user authentication & implementations

We'd like a pluggable user authentication module. OpenID is very common authentication method, used e.g. by Google. OAuth is also commonly (mis?)used (e.g. by Facebook and Twitter), although it was never designed for this purpose. Some people would also like Persona/BrowserID integration. Some people want to use things like LDAP.

With our new work toward pluginification it would be good to see the structure for user authentication to be interface'ified. It would also be good to have implementation for several types of logins such as OpenID, Persona/BrowserID, LDAP, and central authentication system stuff.

Possible mentors: Nathan Yergler, Joar Wandborg, Chris Webber

Administrative interface / moderation tools

At present there isn't much as in terms of tooling to deal with things as an administrator. Several things would be greatly of help to admins at present:

  • Views to search for users and take actions upon them
  • Tools to deal with handling problematic content/users
  • More generalized panel for looking at things being processed
  • ???

Possible mentors: --Copiesofcopies (talk) 15:02, 1 April 2013 (EDT), Joar Wandborg, Chris Webber

Processing panel improvements

While media is being uploaded, there's not very good and clear indications of this, though we have some basics.

  • Show the number of entries that are currently in processing in the dropdown user panel at the top of mediagoblin instances
  • In media entries that are currently in progress, give clearer information about amount of work left? (Note, showing percentages might be hard)
  • Nicer looking demonstrations of what failed.

Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.

Possible mentors: --Copiesofcopies (talk) 15:03, 1 April 2013 (EDT), Joar Wandborg, Chris Webber

User upload account limits

It would be great to have the ability to set limits on the amount of stuff people can upload. This would involve both hooks to track the space of media as it's saved (maybe this should be fairly core?) as well as the ability to refuse an upload because a limit has been already hit. Tools to change limits would also be good, especially via an administrative interface and ./bin/gmg

--Joar (talk) 07:41, 30 March 2013 (EDT) mediagoblin.storage.StorageInterface should probably implement a get_size method or similar.

Possible mentors: Joar Wandborg, Chris Webber

Search interface

We don't have any sort of Search for media whatsoever at present. Obviously people want this!

There's been some discussion of a search interface that would be federated, but for the scope of this, we don't need to worry about that. It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.

Possible mentors: Nathan Yergler, Aeva NTSC, Chris Webber

Pluginifying media types

Media types currently have their own way of being configured separately. It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata). This will also allow media types to define things like special-case views, etc.

This might actually be very simple, so consider making a proposal that's directly combined with the media type reprocessing framework below.

Possible mentors: --Copiesofcopies (talk) 15:02, 1 April 2013 (EDT), Joar Wandborg

Media type reprocessing framework

This one is tricky! Basically, allowing media to go back into processing... ie, resizing an image to a new size, re-transcoding video, etc. There are several cases where you may want to reprocess things: if your processing step failed, if you want to resize images to new sizes, if you want to extract new and relevant data from old videos, etc.

To understand this, please read up on:

Possible mentors: Joar Wandborg, Chris Webber