Educational Blogger Project

From OLPC
Revision as of 03:22, 2 April 2008 by Tarun2000 (talk | contribs)
Jump to: navigation, search

Abstract

Very few (if any) current blogging systems are developed for the purpose of education and easy enough for use by young children in the low bandwidth environment they have in third world countries. However, blogs are an excellent educational tool as demonstrated in Villa Cardal, Uruguay. The users highlighted the need for an XO focused blogging system and pointed out the difficulty they had in configuring Blogger for use. The Educational Blogger Project is a system where teachers and students can create and share content easily and will run efficiently on the XO laptop. This system will also serve as a middle agent between the XO and Blogger, WordPress or other blog system residing on the internet. The Educational Blogger Project significantly facilitates the use of blogs on the XO environment and makes it available for more widespread use.

Details

Standard Workflow

Tarun2000 workflow.png

1) Kid Creates Post - Children can use the Write Activity (AbiWord based) to create a post. A slight modification/plug in to the activity would display a "post to blog" option for the child. When clicked, the XHTML formatted post (taking advantage of Write's XHTML generation) and meta information (class its for, group, etc.) will be sent to the Educational Blogger Web Application on the XS. The XS will store the post locally using Moodle, WordPress or other similar web application.

2) Kids Collaborate - Children in the same group can collaborate on a post. To edit a post, a child can click on an edit link (which will appear if they have permission to edit that post) in the browser. The link will open Write and load the file for editing (file extension association). Uploading the edited post will be similar to creating a post, except that the user will not be prompted for extra information when saving. Collisions can be prevented by locking posts or using a merging algorithm

3) Teacher Controls Post - At all times, the teacher can view posts of all students in the class and edit/delete them. The teacher can also create users/groups, give students editing rights and perform other everyday administration tasks. The teacher also sets access rights for the post (internet, local, class only, group only).

4) Post released - The teacher also has the power to release the post (publish to Blogger, Generic WordPress server or other blogging site). This would essentially transfer all the post data using XML-RPC (specifically Blogger API to start, eventually MovableType, MetaWeblog)

Requirements

The project has already been divided into four steps on the requirements page (http://wiki.laptop.org/go/Requiremientos_Para_XO). At a high level, the requirements stipulate modifications to the WordPress system to make it support different levels of user permissions, synchronize blog data across servers to make data transfers as local as possible, more bandwidth conservative, and easy for a child to use and teacher to administer. I would like to create the four essential core functions of the XO educational blogging system and integrate them into a basic working application ready for deployment.

1) WordPress customization for granting different access levels

As per requirements, I would like to create four access levels: public (internet), registered (school/class), selected (small group), publisher only. WordPress currently does not provide an effective mechanism for such a scheme. This modification would allow teachers to do things like keep posts private for their class, publish selected posts, view their class's posts before publishing and create group projects.

I propose implementing this feature by creating new tables to store the permissions associated with each post and creating a class or set of functions (depending on target PHP version) to interface with this table. This would allow the feature to be fairly separate from the core of WordPress so updates and bug fixes to WordPress can be more easily integrated into the XO version of the system.

2) Daemons system for exchanging information within "Partner Servers"

This consists of writing daemons for a set of servers to all share blog information. Essentially, public posts will be replicated across the servers so that internet bandwidth can be conserved (local caching). Other partner servers can store specific posts to make the information more readily available to the world. All of this is controlled by a web application.

I would like to develop a set of PHP cron scripts to synchronize public posts between servers. Instead of sending the entirety of post information to each server, I think it would be sufficient to synchronize meta information for each post. Upon access of the post, the partner server would obtain the data from the originating server and cache it until new meta data appears for that post. This would conserve server-server bandwidth as well as client-server bandwidth.

3) WordPress customization for optimizing XO and children access

WordPress currently contains many complicated features that can make the system appear intimidating for XO users. Simplifying the interface would make this system much more inviting to use.

First, I would like to remove/hide complex WordPress features, unnecessary high bandwidth elements and XO incompatible elements. Also, I propose to simplify the theme interface and alter the editor interface. I think it would be sufficient for users to be able to select from a set of XO approved themes (that optimize bandwidth) and provide a few simple configuration options for style. I also want to modify the icon GUI in the editor with a more descriptive menu interface that would guide the child through formatting step by step.

4) Web application for creating and managing users and blogs

School administrators need to be able to create/delete users, blogs and posts. A simple web based administration screen would allow them to do so as well as edit the settings of the system on the local school server.

I would like to write a simple PHP script that allows administrators to change settings and manage users and blogs using browser based forms and controls.

Benefits of Educational Blogging System

  • Adds teamwork capabilities to blogs through permissions creating a collaborative environment for students allowing teachers to use blogging as an effective educational tool
  • Much easier to set up and administer than current blogging systems
  • Overcomes limitations of bandwidth hungry blogging systems allowing for a good user experience on the XO

Deliverables

The four stages of development described above can serve as the deliverables for this project:

  • WordPress modification with the additional user privileges
  • Post exchange/replication system with partner servers
  • WordPress customization for easier access
  • Web Application for managing system

Working plan

  • Prior to GSoC Start: Configuring and familiarizing with the XO environment, WordPress
  • Week 1: Developing and testing user privileges system
  • Week 2,3: Developing and testing the partner server daemons
  • Week 4: Customizing WordPress for child access
  • Week 5: Developing and testing web application for administration
  • Week 6: Package and test installer
  • Week 7,8: Integration testing, further optimizations depending on remaining time
  • After GSoC End: Support, Upgrades, Maintenance

The system will have to work on the XO environment (both client and server) and be practical for use with low bandwidth. In addition, at the end of the project, the system will be put into a one click install package for the XO server.

About Me

I am a 19 year old self taught programmer. When I was in 6th grade I began to teach myself programming by reversing engineering the code generated from Excel Macros, and then went on to learn Java and other languages. In 10th grade, I wrote an editor for Intel Hex that is now installed on all the computers in my high school and has been downloaded by over 2000 users. In late high school I started distributing my older software online (http://www.betarun.com) (still working on making the newer pages). I'm currently interested in web applications, graphical compilers and scientific graphics.

I realize now that my interest in programming has been a huge motivation for me to learn math and science so I feel that if children are introduced to programming at a young age they will also be instilled with a passion to learn. My “ grand plan” is to create a powerful, yet simple, graphical programming tool that would allow people to create software with no code at all in an intuitive way that closely models the way we think.