You are on page 1of 9

Software Requirement Specification

Project Title : e-Kaksha over Gaim


Version : 1.0.0

Team Members : - Prekshu Ajmera (prekshu@cse.iitb.ac.in)


IIT Bombay

1. INTRODUCTION
The purpose of this section is to provide the reader a general background about the software “e-Kaksha”

1.1 PURPOSE

This document is the Software Requirement Specification for e-Kaksha, an e-Classroom over Gaim
messenger, version 1.0.0. It describes the functions and performance requirements of e-Kaksha. Using
this software an instructor can run an e-classroom over Gaim to teach and interact with the students.

1.2 DOCUMENT CONVENTIONS


The following conventions have been followed while writing this document:
· Font :- Times New Roman
· Size 16 for Main Headings
· Size 14 for Sub Headings
· Size 12 for the rest of the document.
· Words in Bold are important terms, and have been formatted to grab the attention of the reader.

1.3 INTENDED AUDIENCE AND READING SUGGESTIONS

This document is meant for professors, students and developers who consider virtual classroom as an
useful means for distance education. This document aims at explaining in an easy manner, the basic idea
behind e-Kaksha. It aims to introduce to professors and students the main features of e-Kaksha and how
the developers aim to achieve their goals. Future development objectives are also discussed.

1.4 SCOPE OF THE DEVELOPMENT PROJECT

e-Kaksha is a virtual classroom over Gaim internet 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. Along with this , this software also provides video support which is usually
missing in most of the commercial products but which can nonetheless improve its functionality
manifold.

1.5 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS

e-Kaksha : refers to the e-Classroom software being developed


Gaim : the multi protocol Gaim internet messenger

1.6 REFERENCES
Gaim developer pages : http://developer.pidgin.im/
Yahoo developer pages : http://developer.yahoo.com/
GLib Reference Manual : http://developer.gnome.org/doc/API/2.0/glib/index.html
GTK+ Reference Manual : http://developer.gnome.org/doc/API/2.0/gtk/index.html
Swfdec : http://swfdec.freedesktop.org/
Speex : http://www.speex.org/

2. OVERVIEW OF DOCUMENT
For the rest of the document, we first define the overall product. Then, we give the external interface
requirements, followed by a brief description of the product components and features. In the last section,
we have provided the non
functional requirements of the product.

2.1 PRODUCT PERSPECTIVE

e-Kaksha is build over already existing open source multi protocol messenger - Gaim. 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. For chat functionality it relies on Gaim's implementation of
Yahoo Chat. Swfdec, an open source flash library, is used to provide video support. Since the software is
built over Gaim, it is platform independent rendering it useful for a variety of OS.

A simplified view of e-Kaksha architecture is given below:


Chat & draw
Yahoo's Chat & draw
Chat/Doodle
Chat & draw Server Chat

Professor teaching
on e-Kaksha voice
eKaksha
Voice
Server Students using e-Kaksha
on their PCs

2.2 PRODUCT FUNCTIONS

The instructor running e-Kaksha can do the following things:

• Create separate Yahoo class groups


• Allowing only specific buddies to add to the classroom
• Using chat or group conversation to communicate with his students
• Using white board to draw and write something. This is as if he is writing/drawing on an actual
whiteboard. This is going to be the core feature of e-Kaksha. It will have the following features:
• pencil tool
• object drawing tool (circles/rectangles etc.)
• color tool
• text tool
• brush tool
• eraser tool
• line tool/ multiline tool/ arc tool/ line width tool

• color fill tool


This also removes the need of LATEX like plugins since most of the people do not
know LATEX.
• If the instructor asks a discussion question, every student must supply an answer before he or she
can see the answers of the other students. This is clearly a dramatic improvement over the face to
face class where such discussions are usually dominated by the same small percentage of the
students.
• He can also show them some videos if required. The video player will be inbuilt.
• Voice chat support so that students can have discussions with their instructor. They can also
record their conversation with the instructor.
2.3 USER CLASSES AND CHARACTERSTICS

The major user classes that are expected to use this product are as follows

1. Primary Users

Professors and students are expected to be the main users of this product. The instructors will
have admin privileges whereas students currently have read-only access to the lecture. The
instructor needs to be well versed with the available utilities so as to maximize benefit using
requisite functions.

2. Conference

Drawboard can also used as a medium of sharing ideas and information in conferences.

3. Yahoo Doodle Users

Since this software is platform independent it extends Yahoo's doodle IMVironment for Linux
thus allowing many Linux users to make use of this functionality.

2.4 OPERATING ENVIORNMENT

OS : Linux
Software Packages : Gaim with e-Kaksha, GTK2, Swfdec, libmumble, QT4
To make it OS independent voice chat is to be implemented for Windows XP.
2.5 DESIGN AND IMPLEMENTATION CONSTRAINTS

The software is able to function satisfactorily with minimum of hardware. Since the software is built over
Gaim, so a running implementation of Gaim >=2.0.0 is required to use it. The front end is developed
using GTK2 and follows the GUI guidelines for Gaim. The source code is in C and hence fails to
achieve complete object-orientation. Some part of the code is written in QT4.

2.6 USER DOCUMENTATION


A flash tutorial of the product will also be provided to assist the user in getting started with the product.
Since we have made various changes to the existing Gaim source code, developers can generate the new
user documentation using gtk-doc. A how_to_use file will also be provided with all the basic usage
instructions.

2.7 ASSUMPTIONS AND DEPENDENCIES


We depend on Yahoo's doodle IMVironment protocol. Thus any sort of changes to it will affect the
project.

2.8 OVERVIEW OF DATA REQUIREMENTS

The professor creates a new Yahoo buddy group and buddies in that group are his students. This
information acts as the initial input to be used during classroom setup. Since we are using yahoo chat
service the buddies are added to his yahoo group and not locally. This allows the instructor to start his
classroom from anywhere. The instructor can upload videos at some URL from where the video is
streamed to the students.

2.9 GENERAL CONSTRAINTS, ASSUMPTIONS, DEPENDENCIES,


GUIDELINES

This product is a web based application meant due to which a major constraint on the performance will
be due to the bandwidth of the web connection on both sides. A faster bandwidth will result in smaller
time lags.

It also depends on Yahoo's chat server. So, if due to some reason Yahoo's server goes down, the
classroom will stop working.

2.10 USER VIEW OF PRODUCT USE

For students: A student first has to add the professor as his Yahoo buddy on Gaim. As long as the
professor does not accept his request he won't be able to join the class. Once the professor accepts his
request and add him as a buddy in his classroom group he will get a drawboard window opened and
conference invitation whenever the professor initiates the classroom session. In the current version, he
can't join the classroom in between. So, he has to be online at the time when class starts. He can also can
not see the other students in the class.

For professor: The professor creates a new Yahoo buddy group and buddies in that group are his students.
Since we are using yahoo chat service the buddies are added to his yahoo group and not locally. Thus, he
can start his classroom from anywhere. The professor also puts the video to be shown at some URL from
where the video is streamed to the students. When he initiates the classroom a drawboard window with
different kind of drawing tools is opened on his side and a conference invitation is sent to all the 'online'
students in his classroom group.

Professor also starts the eKaksha Voice Server on a particular port and sets a common password for it.
Students can connect to it to get the benefits of voice chat.
3. EXTERNAL INTERFACE REQUIREMENTS

3.1 USER INTERFACE


The software provides mainly two user interfaces, one pertaining to student and other for instructors.
Instructor interface is characterized by special graphic tools like pen, text, geometric shapes tools etc. In
the Gaim buddy window the instructor can see which students are there in the classroom at any point of
time.
The student interface on the other hand is devoid of these functions but has the ability to clear the
drawboard and a pen tool to add special notes for own use.

3.2 HARDWARE INTERFACES

Not Applicable

3.3 SOFTWARE INTERFACES

It requires basic libraries like GTK2, Swfdec, QT4 for the GUI, and since the source code is in C, GCC
compiler is required to compile the software.
3.4 COMMUNICATION INTERFACES

This software uses http for content transfer. Since the software is built over a chat client the system must
be able to access the Yahoo chat server to access the list of buddies and groups. The efficacy is
significantly affected by available bandwidth and data transfer rates as a higher bandwidth allows smaller
time lags. Current implementation ignores encryption issues as instructors are unlikely to require
discussion in a secure environment.

4. SYSTEM FEATURES

(A) GRAPHIC TOOLS FOR DRAWBOARD

Purpose: As mentioned earlier providing several useful graphic tools for the drawboard increases the
practicality of the software thereby making it more useful for teaching purposes.

Input: All the tools have graphical representation on the front end and hence can be activated by a simple
click. No console based inputs are required as the system detects the environment settings and takes
appropriate inputs.

Output: The output consists of displaying the results of choosing and using a specific tool. Since the tool
can automatically detect the environment settings, the output is always in coherence with any previous
changes made to the default parameters. Any abnormal situations are well-covered with apropos error
messages and notifications.

(B) VIDEO SUPPORT


Purpose: Videos are always more informative and easy to grasp then any form of written or spoken
source of information . Keeping in mind this usage, the instructor is allowed to upload the video at a URL
from where it can be streamed by a mere click on the student interface.

Input: The only input required is uploading the video at the specific URL after which the student can
access it easily, but only during class hours.

Output: Video streams from the URL are easily available to the student who can view the videos using
the open source flash library Swfdec. The software comes with its own swf player based on Swfdec.

(C) CHAT SUPPORT

Purpose: The instructors can not only interact through the drawboard but also avail the benefit of
private/public chats with students. This is an important utility as it encourages participation from the
students who can easily ask doubts, clarifications and even propose solutions using the chat client.
If the instructor asks a discussion question, every student must supply an answer before he or she can see
the answers of the other students. This is clearly a dramatic improvement over the face to face class
where such discussions are usually dominated by the same small percentage of the students.

Input: The students and instructor should be able to communicate to each other through yahoo chat
logins.
Output: The classroom then gets supplemented with support for one-to-one chat between instructors and
other students thereby improving the efficacy of the discussion.

(D) VOICE CHAT SUPPORT

Purpose: 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 can not be
explained using text or figures.

Input: The students and the instructor can connect to the eKaksha voice chat server which professor
starts. Currently the password for login is same for all ..

Output: The students and the instructor can have a voice discussion with each other. The students can
also save the discussion done with the instructor in a .pcm format file. He can then encode this file to
.wav format using speex encoder in a wideband mode.

LIMITATIONS
Due to time constraints the software will lack the following important features:

1. Implementing e-Kaksha in the form of a Gaim Plugin which will make its installation/removal
easier.
2. Integration of the drawboard 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. Drawboard can have more number of tools.
6. A web based interface to perform all the other activities which are necessary to run a course. Eg.
attendance record, online test etc.

5. OTHER NON FUNCTIONAL REQUIREMENTS

INSTALLATION
A Readme for installation instructions and required dependencies will be provided with the software. An
automated installer script will also be provided.

You might also like