Software Design Specification

Similar documents
Adobe Connect: Overview

Getting Started with Adobe Connect Professional

Running Effective Meetings

Wal-Mart Canada: Adobe Connect User Guide

Orientation to Collaborate 11 Farnoush Zadeh, Instructional Designer

How to Host WebEx Meetings

Orientation to Collaborate 11 Farnoush Zadeh, Instructional Designer

Get Started in Web Conference Classes: During the Semester

Interactive Distance Learning based on SIP

V-CUBE Meeting 5. User Manual V-CUBE, INC. 2015/09/01

Using Adobe Acrobat College. How to Host a Meeting - User s Guide

WebEx. Web Conferencing Tool. Fordham IT

Unified Meeting User Guide

Zoom User Manual. developed. Gary P. Davis. and. David J. Ayersman. for. Students and Employees of New River Community and Technical College

Blackboard Collaborate Ultra

WebEx New user Orientation. Meeting Organizer Guide

Cisco WebEx Web Conferencing Productivity Tools for Instant Messengers

Getting Started with Adobe Connect Instructor Guide

OCS for the Blackboard Learn Platform

SEP Evaluation Expert Quick Guide

Kaltura Video Package for Moodle 2.x Quick Start Guide. Version: 3.1 for Moodle

AT&T Connect Communications Center (ACC) User Guide Enterprise Edition Version 8.9 May 2010

SchoolMessenger App. Parent Guide - Mobile. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

ShowNTell - An easy-to-use tool for answering students questions with voiceover

Teaching and Learning with Technology Seminar

Web Meeting. User Guide

WebEx. Web Conferencing Tool. Fordham IT

The Virtual Classroom

Unified Meeting 5 User Guide for Windows

Course Design, Representation and Browser for Web Based Education

Zoom Training. Welcome, and thank you for joining! For the things we have to learn before we can do them, we learn by doing them...

USING SVG XML FOR REPRESENTATION OF HISTORICAL GRAPHICAL DATA

How to Test and Use the Cisco WebEx Client

Online Rooms: Educator Guide. Online Rooms. Introduction to Online Rooms

YU Kaltura Media Package User's Guide For version 1.1.x. Written by Media and Information Technology Center, Yamaguchi University.

Canvas Student Tutorial

Edmodo for Teachers Guide (Taken directly from Edmodo s site.)

ESME Online Introduction to the Adobe Connect Platform

Collaborate Ultra in D2L Brightspace Guide for Moderating and Presenting

About MiTeam. MiTeam Stream. MiTeam on MiCollab for PC, MAC Client, and Web Client. MiTeam Stream tabs. Create a Stream.

ADOBE CONNECT GUIDE FOR INSTRUCTORS

TrainingCenter Getting Started Guide

DoConference Web Conferencing: DoMore DoConference

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

Prezi: Moving beyond Slides

MeetingPlaza Version 8.0

Moodle Student Introduction

CONFERENCING & COLLABORATION

Spontania Administrators Manual

Table of Contents. System Requirements

GLOBALMEET USER GUIDE

Cisco Spark Windows Reference Guide

One-Click Meeting User s Guide

Module 4: Communication

Breeze at Penn State. About meeting roles and permissions

Introduction. Paradigm Publishing. SNAP for Microsoft Office SNAP for Our Digital World. System Requirements

Overview System Requirements New features/enhancements in A-VIEW Known Issues Contact Us... 7

Jabber Messenger Online Help

User Manual for Student. Moodle Administrator

What is Adobe Connect Pro? Setting up a Meeting. Using Adobe Connect Pro

QUICK START GUIDE NTS HOSTED PBX CALL MANAGER. Welcome. Getting Oriented

Learn about the latest offerings in Adobe Connect. This article summarizes the new features and enhancements.

Wimba Pronto. Version 2.0. User Guide

MOBILE APP ATTENDEE TRAINING MANUAL

Google Classroom User Manual

Blackboard Collaborate for Faculty

Version Moodle Module v3.0 for Web Conferencing Configuration and Installation Guide

USING SVG XML FOR REPRESENTATION OF HISTORICAL GRAPHICAL DATA

SI Training for Online Sessions

Contents A. COLLABORATE INTRODUCTION... 1 B. SYSTEM REQUIREMENTS... 1 C. CANVAS COLLABORATE... 2 D. SETTING OF AUDIO (COMPULSORY)...

Unified Meeting User Guide

MindTap Math Foundations Instructor s Guide to Communication Tools

Collaborate Ultra. Presenter Guide for D2L Brightspace. University Information Technology Services

Guide to Collaborate

2. Zoom Video Webinar runs on Windows, macos, Linux, Chrome OS, ios, Android, and

Bridgit, Connected Classroom Technologies & Adobe Connect Professional Learning Workbook Name:

2. Zoom Video Webinar runs on Windows, macos, Linux, Chrome OS, ios, Android, and

Blackboard Collaborate Basics

Web Conferencing in Canvas

Introducing IBM Lotus Sametime 7.5 software.

Ian Hall Update: 26 June 2012 COMMUNICATION SERVICES AVAILABLE

Intermediate/Advanced. Faculty Development Workshop FSE Faculty retreat April 18, 2012

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA

Elluminate Introduction & Handbook

2. Zoom Video Webinar runs on Windows, macos, Linux, Chrome OS, ios, Android, and

Copyright and Trademark Information Trademarks Disclaimer; No Warranty

Student Guide to Collaborate

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

SchoolMessenger App. Parent and Student User Guide - Website. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

About This Guide 1. Terminology Used in this Guide 1 System Requirements 1. Getting Started 2. Downloading and Installing Meeting Software 2

Getting Started with Adobe Connect

Training Module. 1.0 Getting Started with Google+ Hangouts (Teacher)

Beginner Level. Adobe Connect Pro

STUDENT HELP & WALKTHROUGH

Visual Presenter Visual Webcaster

Webcasting. Features. Event Plus Webcast. Use the internet to deliver your message and expand your reach. Basic package.

Elluminate Enabling the Tool and Creating a Session

Wimba Pronto. Version 3.1. User Guide

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA

Enabling Collaborate Ultra in a Blackboard Course

Transcription:

Software Design Specification Project Title : ekaksha++ Version : 2.0.0 Team Members : Prekshu Ajmera (prekshu@gmail.com) IIT Bombay 1. INTRODUCTION 1.1 PURPOSE This document is the Software Design Specification for ekaksha++, an eclassroom over the Pidgin instant messenger, version 2.0.0. The actual design of the various modules and components of ekaksha is described in this document which takes care of various functionalities that the project aims to achieve. 1.2 SCOPE OF THE DEVELOPMENT PROJECT ekaksha++ is a virtual classroom over Pidgin instant messenger. The concept of Virtual classroom has started gaining ground in several academic circles. The growing popularity of this concept can be attributed to its emphasize on collaborative learning based on cooperative efforts among faculty and students, active participation and interaction on the part of both students and instructors, and active sharing of new ideas and information. But the novelty of the concept lies in effective access to learning even from personal computers at home or work. Gauging the growing demand for such virtual classrooms many private institutions have launched similar products. But most of them fail to meet the required demands as they are generally found lacking in several requisite features either from instructors or student side. An important utility, implemented in this software is to integrate the classroom with a chat client so as to facilitate conversations and sharing of ideas along

with virtual descriptions. Using a popular chat protocol like yahoo further adds on to the practicality of the software. Additionally, support for local area voice and video chat is also integrated in to the software. This comes handy when some concept or problem cannot be explained using text or figures. Along with this, the software also provides video support which is usually missing in most of the commercial products but which can nonetheless improve its functionality manifold. 1.3 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS ekaksha++ Pidgin : Refers to the eclassroom software version 2.0.0 being developed : The multi protocol Pidgin instant messenger 1.4 REFERENCES Pidgin developer pages Yahoo developer pages GLib Reference Manual : http://developer.pidgin.im : http://developer.yahoo.com : http://developer.gnome.org/doc/api/2.0/glib GTK+ Reference Manual : http://developer.gnome.org/doc/api/2.0/gtk Swfdec : http://swfdec.freedesktop.org Swfdec (pronounced swiff deck ) is an open source decoder/renderer for Macromedia Flash animations. Speex : http://www.speex.org Speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Moreover, Speex is well-adapted to Internet applications and provides useful features that are not present in most other codecs. Avahi : http://avahi.org The Avahi mdns/dns-sd daemon implements Apple's Zeroconf architecture (also known as Bonjour ). The daemon registers local IP addresses and static services using mdns/dns-sd and provides two IPC APIs for local programs to make use of the mdns record cache the Avahi daemon maintains. First there is so called simple protocol which is used exclusively by Avahi dnsconfd (a daemon which configures unicast DNS servers using server info published via mdns) and nss-mdns (a libc NSS plugin, providing name resolution via mdns). Finally there is D-Bus interface which provides a rich object oriented interface to D-Bus enabled applications.

Telepathy : http://telepathy.freedesktop.org The Telepathy project is building a unified framework for many different kinds of real-time communications. It uses the D-Bus messaging system to provide a simple interface for client applications, allowing them to quickly take advantage of Telepathy's benefits. Telepathy supports instant messaging (both one-to-one and in groups), voice calls and video calls; it's less suited for store-and-forward applications like email. libosip : http://www.gnu.org/software/osip osip is an implementation of SIP. SIP stands for the Session Initiation. This library provides multimedia and telecom software developers an easy and powerful interface to initiate and control SIP based sessions in their applications. Dojo Toolkit : http://dojotoolkit.org Dojo is an Open Source DHTML toolkit written in JavaScript. Dojo solves some long-standing historical problems with DHTML which prevented mass adoption of dynamic web application development. Dojo allows us to easily build dynamic capabilities into web pages and any other environment that supports JavaScript sanely. libjingle : http://sourceforge.net/projects/libjingle Google's Libjingle is Google Talk s implementation of Jingle and Jingle-Audio (proposed extensions to XMPP) to interoperate with Google Talk s peer-to-peer and voice calling capabilities. 1.5 OVERVIEW OF THE DOCUMENT 1. The first section describes the introduction of document. 2. The second section describes the system architecture; in this section we mention the modules of this project and their structures. 3. The third section consists of detailed description of the modules described in the previous section modules. 4. The fourth section states how our project can be reused and its relationship to other products. 5. The fifth section gives the complete idea about design decision and tradeoffs which we had to do in order to simplify the design.

2. SYSTEM ARCHITECTURE DESCRIPTION ekaksha++ is build over already existing open source multi protocol messenger - Pidgin. It extends Yahoo's doodle IMVironment protocol to implement the drawboard which in addition to the traditional pen tool also provides various other graphic tools. Note that all the figures are drawn in Scalable Vector Graphics (SVG) format. This makes ekaksha communication highly efficient since only minimalistic updates are sent to the server. For e.g. if a rectangle is moved on the drawboard then only the differences in the x and y coordinates are sent. In case the Yahoo s sever goes down by some reason we also have a separate whiteboard server. This image illustrates the difference between vector and bitmap images. The vector image can be scaled indefinitely without the loss of image quality, while the bitmap cannot Note that all the whiteboard updates are done in real time and over the same whiteboard shared by other users (feature not even in Google Docs). For chat functionality it relies on Pidgin's implementation of Yahoo Chat. It also supports an AJAX based chat which can be used directly through a web browser. Swfdec, an open source flash library, is used to provide video support. Voice chat and video chat calls are supported using Telepathy, SIP and Jingle libraries. Automatic classroom discovery feature in local area is implemented using Avahi daemon. Since the software is built over Pidgin, it is platform independent rendering it useful for a variety of OS.

If a user just wants to do doodling or drawing he can even use a web browser like firefox 2.0 to quickly access the classroom session and all the previous lectures saved in a database on the server. A simplified view of ekaksha++ architecture is given below: 2.1 OVERVIEW OF MODULES/COMPONENTS Common Module This is the common module for authentication through a Yahoo account as the software uses Yahoo server for chat and other utilities. A user can log into the classroom from ekaksha on Pidgin or through a web browser or through a mobile PDA device. This module is highly flexible. In case Yahoo is not to be used or there are difficulties in accessing it, one can use a local authentication server module to allow users to register and log in. This local sever is uses the database module to store the login information.

Session Management Module This module maintains the whiteboard sessions. When a user logs in it creates a whiteboard session and similarly on logout it destroys the same. In case a user is accessing ekaksha using a browser and accidently closes the browser window it saves the session so that user can start from the point at which the window was closed accidently. It also maintains the session information for the chat or discussion rooms. Broadcasting of drawing option messages (like figure updates) are also handled by it. XML Module It handles all the XML data being generated or received while using ekaksha. It handles proper generation of the SVG figures by interpreting the mouse strokes on the whiteboard. This module also handles the creation of the xml based whiteboard update drawing messages to be broadcasted to the whiteboard server. At the server end it handles the interpretation of the messages sent by the ekaksha client (pidgin or a web browser or a mobile device). Whiteboard Module This is the core module of the ekaksha. It is linked to other modules in some way or the other. The instructor initiates a whiteboard session and use the whiteboard for his lectures. On the other hand the students only have read only access to the whiteboard. The whiteboard can be initiated only after the instructor logs into Yahoo server. Only the instructor has admin privileges for a running whiteboard. Students have only read only access to the drawboard. Students are allowed to make special local notes for lectures on the drawboard which can be saved using the save tool. Drawing, editing, movement, deletion of the figures and images is also handles by this module. Conference Module It handles the setting up of a chat room by the instructor to initiate a conference. The instructor setups a conference by using the conference initiation option provided in Pidgin modified by us. All the online enrolled students get a notification asking for acceptance to the chat room. Currently, each student can chat directly with the instructor only whereas the instructor can view all online students who have accepted invitation to the chat room.

Video Chat Module It handles the connection to the Jabber server using Telepathy support to initiate a video call. When a user right clicks to the professor buddy icon in the Pidgin a option to initiate the video chat appears. Voice Chat Module Instructor uses this module to start the ekaksha voice server at a particular port. Currently same password is used to connect. Video Streaming Module Instructor uploads the video, to be streamed to the students, at a URL. The video player is built into the software. Students can access the video directly using the video tool. Voice Recording Module Voice Chat support so that students can have discussions with their instructor. They can also record their conversation with the instructor Automatic Classroom Discovery Module Adding of classroom to Avahi daemon so that any user in local area can automatically discover the classroom Using Classroom Through A Web Browser (Javascript Module) A Javascript based whiteboard system on top of open source Javascript framework DOJO. This enables ekaksha to be accessed even using a web browser like Firefox 2.0. Note that all the users whether they are using ekaksha on Pidgin or using a web browser can access the same classroom running.

Using Classroom Through A Mobile (Mobile Module) A mobile based whiteboard system on top of open source mobile sdk, Android. This enables ekaksha to be accessed even using mobile phone (with touch support) and PDAs. Note that all the users whether they are using ekaksha on Pidgin or using a PDA can access the same classroom running. Exporting Whiteboard In Different Formats (Imagemagick Module) The whiteboard data can be exported in various formats like SVG, JPG, PNG, PDF etc. It is done using Imagemagick library. Lecture Storage For Future Use (Database Module) All the lectures of the instructor are automatically saved on the server so that a student can access it later if he missed the lecture. These lectures are accessible through a web browser. Tabbed View For Multiple Pages This tool enables a person to create multiple whiteboard pages. Note that all the operations - new page, edit page, delete page and switch page are performed automatically on the side of people who have shared the document and are currently using it, making this whole process highly interactive and dynamic. 2.2 USER INTERFACE ISSUES Instructor has the admin privileges and hence the instructor interface has most options, including initiating chat rooms and allowing students to join the conference. The whiteboard interface also has many options to modify the content, like graphic tools, text tools, image tools etc. The whiteboard interface for students differ from that of the instructor as the student has read only access to whiteboard content. The student is allowed to attach extra notes on the lectures as required. He also has the option to watch a video streamed by the professor.

The interface accessible on the web browser and mobile devices is quite different from what we have on Pidgin. The reason is simply the ease of use on a particular platform. The interfaces for web browser and mobiles are designed by keeping in mind the ease of usage so that even an 8 year old can use it and an 80 year old wants to use it. Instructor's whiteboard on Pidgin Instructor starting a classroom session

Ekaksha being accessed using a Web Browser Image Upload and Crop tool on web browser interface

Ekaksha accessed using a mobile device Login process on mobile

Whiteboards of instructor and student Invitation for Voice and Video Conversation

ekaksha++ buddy list. Right click on the buddy and initiate the video call ekaksha++ Video Chat interface

2.3 INTERACTION DESIGN ekaksha++ voice chat interface

3 DETAILED DESCRIPTION OF COMPONENTS Real Time Collaborative Drawing The most important feature in our whiteboard drawing is its Real Time collboration with other users sharing the whiteboard. Even products like Google Docs, Gliffy etc. do not support this feature. The main idea behind this feature is that users sharing a document should be able to see the updates done by other users in real time on their board. Thus, while they are drawing updates from others are also being displayed at the same time. As one might correctly think that conflicts may occur when two or more users end up in editing the same figure on the drawing board. We have removed these conflicts by using a simple rule. The update will be registered from a user who is last to release his mouse button from the figure. In case a user deletes a figure in this process then figure will be considered as deleted. It is a good reason to assume that other shared users will not deteriorate the document; otherwise we ll not share our document with them. Session Management Module This module maintains the whiteboard sessions. When a user logs in it creates a whiteboard session and similarly on logout it destroys the same. In case a user is accessing ekaksha using a browser and accidently closes the browser window it saves the session so that user can start from the point at which the window was closed accidently. It also maintains the session information for the chat or discussion rooms. Broadcasting of drawing option messages (like figure updates) are also handled by it. There is a separate mechanism adopted to send draw or event messages in one way only(teacher ->Student not Student->Teacher). i.e., whatever the action performed on the student's whiteboard will not reflect on teacher teacher account.

XML Module It handles all the XML data being generated or received while using ekaksha. It handles proper generation of the SVG figures by interpreting the mouse strokes on the whiteboard. A sample SVG text and its corresponding drawing are shown in the figure on the next page. This module also handles the creation of the xml based whiteboard update drawing messages to be broadcasted to the whiteboard server. At the server end it handles the interpretation of the messages sent by the ekaksha client (pidgin or a web browser or a mobile device). <?xml version="1.0"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/graphics/svg/1.1/dtd/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="467" height="462"> <!-- This is for the red square --> <rect x="80" y="60" width="250" height="250" rx="20" fill="red" stroke="black" stroke-width="2px" /> <!-- This is for the blue square --> <rect x="140" y="120" width="250" height="250" rx="40" fill="blue" fill-opacity="0.7" stroke="black" stroke-width="2px" /> </svg>

Whiteboard Module This is the core module of the ekaksha. It is linked to other modules in some way or the other. The instructor initiates a whiteboard session and use the whiteboard for his lectures. On the other hand the students only have read only access to the whiteboard. The whiteboard can be initiated only after the instructor logs into Yahoo server. Only the instructor has admin privileges for a running whiteboard. Any student can be banned from viewing the contents and similarly can be allowed to view the complete drawboard. This access is controlled by adding or deleting students in the buddy list. Students have only read-only access to the drawboard. They have to be online at the time of classroom setup and receive notifications for the same. No student is allowed to join the classroom in-between. Students are allowed to make special local notes for lectures on the drawboard which can be saved using the save tool. Drawing, editing, movement, deletion of the figures and images is also handles by this module. When a user presses a mouse button and starts moving it to draw a figure it detects the mouse events and communicates with the XML module to generate the corresponding SVG text which is displayed on the whiteboard. Once the user releases the mouse button, it receives the SVG text generated by the XML module and displays it on the whiteboard.

Conference Module It handles the setting up of a chat room by the instructor to initiate a conference. The instructor setups a conference by using the conference initiation option provided in Pidgin modified by us. All the online enrolled students get a notification asking for acceptance to the chat room. Currently, each student can chat directly with the instructor only whereas the instructor can view all online students who have accepted invitation to the chat room. The main purpose of this module is to allow students to interact with the professor. The discussion room is initiated by the professor. A discussion request is send to all the students simultaneously. A student can join the discussion only after he accepts the request. This can also be used by the professor as a means of taking attendance. Note that the professor can see all the students in his discussion room but the students can only see the professor. Professor starting the classroom

Accept request on the student's side Professor + 2 students. Professor can see both the students but a student can see only the professor

Video Chat Module It handles the connection to the Jabber server using Telepathy support to initiate a video call. When a user right clicks to the professor buddy icon in the Pidgin a option to initiate the video chat appears. Currently video conferencing is not supported.

Voice Chat Module Instructor uses this module to start the ekaksha voice server at a particular port. Currently same password is used to connect. The instructors can not only interact through the drawboard or text chat but can also avail the benefit of voice chats with students. This comes handy when some concept or problem cannot be explained using text or figures. The students can connect to the ekaksha voice chat server which professor starts. The students and the instructor can have a voice discussion with each other. Voice chat connect dialog ekaksha++ voice server settings dialog

User connected to the ekaksha++ voice server ekaksha++ audio settings dialog

Video Streaming Module Instructor uploads the video, to be streamed to the students, at a URL. The video player is built into the software. Students can access the video directly using the video tool. The purpose of this module is to provide video support with which will enable students to see the video played by the teacher. The video is started simultaneously in all the student accounts. If a student wants to see the video again he can click on the video button on his board. Note the video URL is specified by the teacher on his own interface and students shall be able to see the video only when the instructor plays the video and exits. This is a sort of check that video URL is working.

Voice Recording Module Voice Chat support so that students can have discussions with their instructor. They can also record their conversation with the instructor in a.pcm format file. He can then encode this file to.wav format using speex encoder in a wideband mode. Automatic Classroom Discovery Module When an instructor starts a classroom he also registers it to the Avahi daemon so that any user in local area can automatically discover the classroom. Using Classroom Through A Web Browser (Javascript Module) A Javascript based whiteboard system is built on top of open source Javascript framework DOJO. This enables ekaksha to be accessed even using a web browser like Firefox 2.0. The implementation of this module is completely AJAX based. We have used the pull model of AJAX to implement this feature. In the pull model each browser based client queries the whiteboard server for updates in every 1 second (which is the latency in our case) and get the updates. Moreover, any updates made by the client are instantly sent to the server where they are stored in a database.

But pull method is not the best possible way to implement this module. In future we plan to use the push model in which server send the updates to all the clients whenever it receives any. Thus, the extra overhead of querying the server each second will get eliminated. Note that all the users whether they are using ekaksha on Pidgin or using a web browser can access the same classroom running. Another thing to note is that the real time collaborative drawing explained at the beginning of this section also works for web browser based access. Using Classroom Through A Mobile (Mobile Module) A mobile based whiteboard system on top of open source mobile sdk, Android. This enables ekaksha to be accessed even using mobile phone (with touch support) and PDAs. Note that all the users whether they are using ekaksha on Pidgin or using a PDA can access the same classroom running. Currently only limited features are supported on this. Another thing to note is that the real time collaborative drawing explained at the beginning of this section also works for mobile based access. Exporting Whiteboard In Different Formats (Imagemagick Module) The whiteboard data can be exported in various formats like SVG, JPG, PNG, PDF etc. It is done using Imagemagick library.

Lecture Storage For Future Use (Database Module) All the lectures of the instructor are automatically saved on the server so that a student can access it later if he missed the lecture. These lectures are accessible through a web browser. ekaksha++ database schema

4. REUSE AND RELATIONSHIP TO OTHER PRODUCTS Our software can be used with any Course Management Software like moodle to run a course. Moreover, just by a small change of packet information and message types we can implement it for other protocols like MSN, GTalk etc. We can also link it to some Course Management Software so as to synchronize the course list and the student list automatically and display important notifications to students like course grades, latest assignments, attendance etc. We can also recording the activities done on the whiteboard in the form of a video. Apart from this we can also have the feature for file uploads (For Eg. an instructor can upload lecture notes from some other instructor). 5. DESIGN DECISION AND TRADEOFFS In the Javascript module, pull method is not the best possible way to achieve the goals. In future we plan to use the push model in which server send the updates to all the clients whenever it receives any. Thus, the extra overhead of querying the server each second will get eliminated. 6. FUTURE WORK Due to time constraints the software lacks the following important features: 1. Implementing ekaksha++ in the form of a Pidgin plugin which will make its installation/removal easier. 2. Integration of the whiteboard with the conversation window. 3. A student should be able to see other students in the classroom. 4. A student should be able to join the classroom in between. 5. Whiteboard can have more number of tools. 6. A web based interface to perform all the other activities which are necessary to run a course. For e.g. attendance record, online test etc. 7. Predefined templates to teach 8. File uploads (For Eg. an instructor can upload lecture notes from some other instructor). 9. Recording the activities done on the whiteboard in the form of a video.

10. Merging ekaksha with already existing open source course management system like Moodle. 7. PSEUDOCODE FOR COMPONENTS N. A. 8. APPENDICES N. A.