Educational Blogger Project

From OLPC
Revision as of 23:34, 3 April 2008 by Tarun2000 (talk | contribs)
Jump to: navigation, search

Abstract

Blogs are an excellent educational tool as demonstrated by the use of Google Blogger in Villa Cardal, Uruguay. The kids had some issues and requested changes to make the system easier to use. Setting up the system on the XO was difficult due to Blogger's many features and bandwidth intensive resources. Technicians needed to assist in actually posting the blog entries to the internet. Very few (if any) current blogging systems are easy enough for use by young children in the low bandwidth environment they have in third world countries. The Educational Blogger Project will address these problems. Essentially, it stores posts locally using Moodle (or similar service) and allows for kids to collaborate, gives teachers the control they need and optimizes the process for the XO and low bandwidth. The Educational Blogger Project significantly facilitates the use of blogs on the XO environment and makes it available for more widespread use. The ultimate goal is to create an system that can be set up easily on any XS and used by kids around the world.

Benefits of Educational Blogging System

  • Allows teachers to use blogging as an effective educational tool by adding teamwork capabilities, creating a collaborative environment for students and simplifying the process
  • Optimized for the XO and low bandwidth, so users will have a great experience
  • Gives OLPC a source of feedback and a way to see what is important to kids
  • Makes kids happy! Kids requested blogging!

Details

The design of this project addresses the concerns in the requirements specifications. The basic issues making it difficult to use current systems are the need for good connectivity, children getting confused with some options, the number of steps involved in creating a post, difficulty in collaborating on a post and difficulty with monitoring and viewing posts before being published.

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 Write 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 (modified to incorporate needed user permissions, bandwidth optimized).

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 to start, eventually 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). The post will also be available for replication on partner servers.

5) Post Exchange - A daemons system will replicate posts across partner servers. For example, a regional server could store all the posts in the region. Post Exchange serves to optimize a country's bandwidth as well as a school's bandwidth.

Major Components

Tarun2000 stack.png

EduBlog Client - This is a modification/plug-in to the Write Activity and serves as the interface between Write and the EduBlog server. This consists of a slight GUI modification to Write so that a "Publish" option is shown in the menu. Clicking on that option will bring up a GUI allowing the child to select what class the post is for. Finally, the child can click "Submit" and send the data to the EduBlog Server using HTTP. XHTML generation is done by the Write Activity (already supported). Also, clicking on edit in the Browse Activity will open up Write and preload the page for editing and allow for easy updating through the EduBlog Client.

EduBlog WebClient - This is a browser based editor that can serve the same functionality as EduBlog Client. This can be a stripped down version of the WordPress client interface.

EduBlog Server - The EduBlog Server does most of the communication work. When a post is received or edited, the EduBlog server will alter Moodle tables appropriately (either directly or through the Moodle API). It will also deal with concurrent editing issues by locking the post or merging changes. The EduBlog server also augments the Moodle database to support the specific user types needed and handles a post's view and edit permissions. It also allows teachers to make can make certain posts public by publishing them to blog sites on the internet. The EduBlog server will have plug-ins that allow it to interface with various blog systems such as Google Blogger and WordPress using XML-RPC (supported by both Blogger and WordPress). In addition, EduBlog Servers running on different XS's will replicate posts as necessary to optimize local and national bandwidth.

EduBlog Admin - This is a web interface to administer the EduBlog Server. Teachers can use this interface to view and control the posts made by kids in their class, create/delete users, edit posts made by their class, create groups that can collaborate on a post and release posts to the internet. Admins can use this interface to configure the system such as settings for releasing to blog sites on the internet. The way in which data is to be exchanged with partner servers can also be specified.

Deliverables

The major components described above are the deliverables for this project. The WebClient is not part of my proposal since it is not needed for the system, however, the EduBlog server will be capable of handling data sent from it if it is created. 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.

  • EduBlog Client
  • EduBlog Server
  • EduBlog Admin
  • One click installer for XS

Working plan

  • Prior to GSoC Start: Configuring and familiarizing with the XO environment, Moodle, XML-RPC
  • Week 1: Developing and testing EduBlog Client and sending data to EduBlog server
  • Week 2: Incorporating user privileges into EduBlog Server
  • Week 3: Developing and testing of storing of information in Moodle
  • Week 4: Developing and testing plug-ins to publish to Blogger and WordPress
  • Week 5: Developing and testing web application for administration
  • Week 6: Package and test installer
  • Week 7,8: Integration testing, further plug-ins depending on remaining time
  • After GSoC End: Support, Upgrades, Maintenance

Mentor

Greg Smith (Gregorio)

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 ultimate goal 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 that anyone can use.

Relevant Skills

  • Software: C++, PHP, MySQL, XHTML, JavaScript, AJAX, Linux Understanding, GTK
  • Language: 2 Years of Spanish

Relevant Experience

Features for RTEF (http://rtef.info/)

Adding capabilities to a cross browser WYSIWYG editor to allow users to add Java Applets. Flash, YouTube Videos into content edited with the editor in a multi browser environment; involves JavaScript, XHTML

XAMPP Java Control Panel (http://sourceforge.net/projects/xamppcp/)

Developing a cross platform GUI control panel for XAMPP (Apache MySQL PHP Perl) to be a Linux/Mac equivalent for the Windows version; involves Java, Shell Scripting

Radiance (PHP Web Application)

Developed web application that allows users to securely log on and edit web pages using a WYSIWYG editor (RTEF) with features for multiple user support, user permissions, tracking, attachments, creating forms and an extensible plug-in architecture for third party development; uses XHTML, PHP, JavaScript, MySQL

SMART Pot (A Plant Monitoring System)

Created system to wirelessly monitor a multitude of sensors and detect when plants require care and transmit data to each other and a central unit using a low bandwidth transmission protocol; uses intelligent synchronization/replication algorithms, RF technology, PIC microcontroller, PIC Assembly

Features for ElVis (http://w3.pppl.gov/ElVis)

Developed features for the scientific graphics program ElVis to remotely monitor simulation data using XML and netCDF; involved optimizing data transfer of large files; recognized for invention disclosure titled “Automated Monitoring of Digital Data” by US Department of Energy and Princeton Plasma Physics Lab Patent Awareness Program; uses Java, XML, netCDF, Graphics2D, Swing