SoC webservices revisited

From GeeklogWiki
Jump to: navigation, search

This is one of the projects to be implemented during the Google Summer of Code 2009.

Student: Phaneendra Kaddi, Mentor: Ramnath Iyer

Project info and advancement during Summer of Code

(more to come)

Pre-Summer of Code idea discussion & preparation


As part of the 2007 Summer of Code, a webservices API has been implemented in Geeklog. It provides the basic framework (RESTful communication, authentication) and implements the Atom Publishing Protocol (RFC 5023, Atompub) for stories and the plugin API (with the Static Pages plugin as a sample implementation).

In this project, we would like the student to look into areas where the webservices could also be added and, possibly, where they need changes or additions.

Areas of Interest

The following areas would appear to make useful additions to the webservices API:

  • image upload in stories
  • story submissions
  • comments

These would appear to make the most sense at this time, to round off the existing functionality of the webservices API and bring it in sync with what can be done through the normal web-based UI.

We are open for suggestions for additional areas where the webservices API could be used, though.


Image Upload

When using the Admin's version of the story editor, a user can upload images that are to be used in the article (includes automatic thumbnail creation, link to the full-size version, etc.). This has been left out in the original implementation of the webservices API for the stories.

Atompub does have support for images and other types of media (Media Resources). Therefore, it should be possible to implement the image upload via the webservices API so that an Atompub client can be used to publish articles with images in them.

Story Submissions

A Geeklog site allows visitors to submit stories for publication on the site. These will usually have to be approved by a moderator first. Story submissions are stored in a separate submission queue until approved (or rejected). The webservices API should be extended to allow users to submit stories and moderators to approve or reject (delete) submissions.

Since moderation of submissions is also available for plugins (through Geeklog's plugin API), it would be preferable if this could be implemented in such a manner that webservices access is also available for plugins.

To be discussed: Whether to expose the existence of a submission queue or not. It may make sense to treat submissions as normal entries and only set the "draft" flag for them.


Comments by readers are supported for stories and plugins using the comment plugin API (e.g. Polls, Static Pages). There should be a way for users to submit (and possibly edit) their comments through the webservices API.

Note: Editable comments were part a GSoC project in 2008 and will be available as of Geeklog 1.6.0.

Level of Difficulty

medium to high

Implementing both the Image Upload and the Submission Queue is probably too big a project for the Summer of Code. Our estimate is that either of these would require about two thirds of the time of the program.

Students interested in this project should indicate which of the two sub-projects they would like to be working on.

Further Reading