Sei sulla pagina 1di 16

Software Requirement Specification

Project Title : eKaksha++


Version : 2.0.0
Team Members : Prekshu Ajmera (prekshu@gmail.com)
IIT Bombay

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

1.1 PURPOSE

This document is the Software Requirement Specification for eKaksha++, an eClassroom


over Pidgin messenger, version 2.0.0. It describes the functions and performance
requirements of eKaksha++. Using this software an instructor can run an eClassroom
over Pidgin to teach and interact with the students. Not only this, it can also be used in
company environments for voice-video conferencing and flowcharting. Last but not the
least; it can also be used just for doodling. The doodling can be used either through
eKaksha interface or a web browser like firefox 2.0 or even mobile device like android in
real time.

1.2 INTENDED AUDIENCE AND READING SUGGESTIONS

This document is meant for professors, students and developers who consider virtual
classroom as a useful means for distance education. This document aims at explaining in
an easy manner, the basic idea behind eKaksha++. It aims to introduce to professors
and students and also general users (For eg. People working in a company) the main
features of eKaksha++ and how the developers aim to achieve their goals. Future
development objectives are also discussed.
1.3 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.4 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS

eKaksha++ : Refers to the eClassroom software version 2.0.0 being developed


Pidgin : The multi protocol Pidgin instant messenger

1.5 REFERENCES
Pidgin 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
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
"Rendezvous" or "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 the 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 the 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.
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

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.2 PRODUCT FUNCTIONS

The instructor running eKaksha++ can do the following things:

1. Real Time Collaborative Drawing: He can also invite other instructors to teach a
particular lecture with him. All the updates on the whiteboard are done in real
time and on the same board (feature not present even in google docs).
2. Classroom Discovery: Adding of classroom to Avahi daemon so that any user in
local area can automatically discover the classroom
3. Classroom Groups: Create separate Yahoo class groups
4. Allowing only specific buddies to add to the classroom
5. Using chat or group conversation to communicate with his students
6. Voice & Video chat: Using Video and Voice chat for better communication
7. Advanced Whiteboard System (supported on eKaksha, Web Browser, Mobile):
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 eKaksha++. It will
have the following features:
a. Pencil/Freehand tool
b. Object drawing tool (circles/rectangles/triangles/parallelograms etc.)
c. Color tool
d. Text tool
e. Brush tool
f. Eraser tool
g. Line tool/ Multiline tool/ Arc tool/ Line width tool
h. Image tool/ Image Crop
i. ClipArts
j. Color fill tool
This also removes the need of LATEX like plugins since most of the people do not
know LATEX.
8. Voice Recording: Voice Chat support so that students can have discussions with
their instructor. They can also record their conversation with the instructor.
9. Lecture storage for future use: 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.
10. Modified Conferencing: 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.
11. Support for flash video streaming: He can also show them some videos if
required. The video player will be inbuilt.
12. Exporting whiteboard in different formats: The whiteboard data can be
exported in various formats like SVG, JPG, PNG, PDF etc.
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. Conferencing

Drawboard can also used as a medium of sharing


ideas and information in conferences. Video chat can
also be used but this feature in conference mode
may not be supported in this version. Currently, only
two people can see other at a time.

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.

4. Web and Mobile Users

Our advanced whiteboard system can also be using a Web browser and a mobile device.

2.4 OPERATING ENVIRONMENT

OS : Linux
Softwares : Pidgin with eKaksha++, GTK2, Swfdec, libmumble, QT4, libj2k, Telepathy,
libjingle, liblinphone, telepathy-stream-engine, Avahi, libosip
2.5 DESIGN AND IMPLEMENTATION CONSTRAINTS

The software is able to function satisfactorily with minimum of hardware. Since the
software is built over Pidgin, so a running implementation of Pidgin >=2.0.0 is required
to use it. The front end is developed using GTK2 and follows the GUI guidelines for
Pidgin. 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 Pidgin 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 yahoo doodling part of the project. Though, we also have a separate doodling
server which can be used independently of Yahoo.

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

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. Though, we have implemented our own AJAX
based chat which we can always use.
2.10 USER VIEW OF PRODUCT USE

For students: A student first looks for a running classroom nearby. If he finds one he
has to add the professor as his Yahoo buddy on Pidgin. 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 adds 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 also can’t see other students in class.

For professor: The professor starts the classroom and registers it to the Avahi daemon
so as to make it automatically discoverable by the students in the local area network of
the institute. 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.

Teacher starting the class

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. If
a student wants to do a video conversation with the professor he can initiate it using
the options provided.
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 Pidgin 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.
The users browsing from the web will have the following kind of interface:

eKaksha Voice Chat interface


Image Upload nad Crop tool

Invitation request for Voice and Video


conversation

eKaksha++ buddy list. Right Click on the buddy


and initiate the video chat
eKaksha Video Chat interface

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. To compile audio and video
support we need telepathy and libjingle. For web browser support we need the DOJO
javascript toolkit.

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) 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 an user who is last to release his
mouse button from the figure. In case a user deletes a figure in this process then the
figure will be considered as deleted.

(B) 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.

(C) VOICE/VIDEO CHAT SUPPORT

Purpose: The instructors can not only interact through the drawboard or text chat but
can also avail the benefit of voice/video chats with students. This comes handy when
some concept or problem cannot 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.

(D) 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.

(E) 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.
LIMITATIONS

Due to time constraints the software will lack 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 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. 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.

5. OTHER NON FUNCTIONAL REQUIREMENTS

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

Potrebbero piacerti anche