Difference between revisions of "SoC webservices revisited"

From GeeklogWiki
Jump to: navigation, search
(Further Reading)
Line 8: Line 8:
  
  
== Goals ==
+
== Areas of Interest ==
  
 
The following areas would appear to make useful additions to the webservices API:
 
The following areas would appear to make useful additions to the webservices API:
Line 16: Line 16:
 
* comments
 
* comments
  
This is not a fixed list of features that ''must'' be implemented. The student and mentor will have to review the amount of work required to implement these and may decide to re-focus the project accordingly. They could also identify other areas where support for the webservices may make more sense and decide to implement those instead (or in addition).
+
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.
  
  
Line 25: Line 27:
 
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.
 
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 includes support for images. 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.
+
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 ===
 
=== Story Submissions ===
Line 32: Line 34:
  
 
Since moderation of submissions is also available for plugins (through Geeklog's plugin API), it would be preferrable if this could be implemented in such a manner that webservices access is also available for plugins.
 
Since moderation of submissions is also available for plugins (through Geeklog's plugin API), it would be preferrable 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 ===
 
=== Comments ===
Line 38: Line 42:
  
 
Note: This may have to be coordinated with the attempts to [[SoC_improving_comments_2008|improve the comment handling]], should that project be picked up again.
 
Note: This may have to be coordinated with the attempts to [[SoC_improving_comments_2008|improve the comment handling]], should that project be picked up again.
 +
 +
 +
== 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.
  
  

Revision as of 10:07, 3 March 2008

(This is an idea page for the Google Summer of Code)

Incentive

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.


Details

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 preferrable 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

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: This may have to be coordinated with the attempts to improve the comment handling, should that project be picked up again.


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