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 :)
- 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!
Here are a list of projects that students may wish to apply for for GSOC 2013:
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!
- 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.
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
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.
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
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.
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: