3043_SRS_1

download 3043_SRS_1

of 16

Transcript of 3043_SRS_1

  • 8/7/2019 3043_SRS_1

    1/16

    Software Requirement Specification

    Project Title : eKaksha++

    Version : 2.0.0

    Team Members : Prekshu Ajmera ([email protected])

    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.

  • 8/7/2019 3043_SRS_1

    2/16

    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

    http://developer.pidgin.im/http://developer.pidgin.im/http://developer.pidgin.im/http://developer.yahoo.com/http://developer.yahoo.com/http://developer.yahoo.com/http://developer.gnome.org/doc/API/2.0/glibhttp://developer.gnome.org/doc/API/2.0/glibhttp://developer.gnome.org/doc/API/2.0/glibhttp://developer.gnome.org/doc/API/2.0/glibhttp://developer.yahoo.com/http://developer.pidgin.im/
  • 8/7/2019 3043_SRS_1

    3/16

    Swfdec :http://swfdec.freedesktop.orgSwfdec (pronounced swiff deck) is an open source decoder/renderer for Macromedia Flash

    animations.

    Speex :http://www.speex.orgSpeex 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.orgThe 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.orgThe 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/osipoSIP 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.orgDojo 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/libjingleGoogle'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.

    http://swfdec.freedesktop.org/http://swfdec.freedesktop.org/http://swfdec.freedesktop.org/http://www.speex.org/http://www.speex.org/http://www.speex.org/http://speex.org/fsos/http://avahi.org/http://avahi.org/http://avahi.org/http://telepathy.freedesktop.org/http://telepathy.freedesktop.org/http://telepathy.freedesktop.org/http://dbus.freedesktop.org/http://www.gnu.org/software/osip/http://www.gnu.org/software/osip/http://dojotoolkit.org/http://dojotoolkit.org/http://sourceforge.net/projects/libjingle/http://sourceforge.net/projects/libjingle/http://sourceforge.net/projects/libjingle/http://sourceforge.net/projects/libjingle/http://dojotoolkit.org/http://www.gnu.org/software/osip/http://dbus.freedesktop.org/http://telepathy.freedesktop.org/http://avahi.org/http://speex.org/fsos/http://www.speex.org/http://swfdec.freedesktop.org/
  • 8/7/2019 3043_SRS_1

    4/16

    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 Yahoos 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.

  • 8/7/2019 3043_SRS_1

    5/16

    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 aparticular 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).

  • 8/7/2019 3043_SRS_1

    6/16

    2.Classroom Discovery: Adding of classroom to Avahi daemon so that any user inlocal area can automatically discover the classroom

    3.Classroom Groups: Create separate Yahoo class groups4.Allowing only specific buddies to add to the classroom5.Using chat or group conversation to communicate with his students6.Voice & Video chat: Using Video and Voice chat for better communication7.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 toolb.Object drawing tool (circles/rectangles/triangles/parallelograms etc.)c.Color toold.Text toole.Brush toolf.Eraser toolg.Line tool/ Multiline tool/ Arc tool/ Line width toolh.Image tool/ Image Cropi.ClipArtsj.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, everystudent 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 ifrequired. The video player will be inbuilt.

    12.Exporting whiteboard in different formats: The whiteboard data can beexported in various formats like SVG, JPG, PNG, PDF etc.

  • 8/7/2019 3043_SRS_1

    7/16

    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

  • 8/7/2019 3043_SRS_1

    8/16

    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 implementedour own AJAX

    based chat which we can always use.

  • 8/7/2019 3043_SRS_1

    9/16

    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 drawboardwindow 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 cant 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. Theprofessor 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. If

    a student wants to do a video conversation with the professor he can initiate it using

    the options provided.

    Teacher starting the class

  • 8/7/2019 3043_SRS_1

    10/16

    3. EXTERNAL INTERFACE REQUIREMENTS

    3.1 USER INTERFACE

    The software provides mainly two user interfaces, one pertaining to student and otherfor 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.

  • 8/7/2019 3043_SRS_1

    11/16

    The users browsing from the web will have the following kind of interface:

    eKaksha Voice Chat interface

  • 8/7/2019 3043_SRS_1

    12/16

    Image Upload nad Crop tool

    eKaksha++ buddy list. Right Click on the buddy

    and initiate the video chat

    Invitation request for Voice and Video

    conversation

  • 8/7/2019 3043_SRS_1

    13/16

    3.2 HARDWARE INTERFACESNot Applicable

    3.3 SOFTWARE INTERFACESIt 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.

    eKaksha Video Chat interface

  • 8/7/2019 3043_SRS_1

    14/16

    4. SYSTEM FEATURES

    (A) REAL TIME COLLABORATIVE DRAWING

    The most important feature in our whiteboard drawing is its Real Time collborationwith 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 thefigure will be considered as deleted.

    (B) GRAPHIC TOOLS FOR DRAWBOARDPurpose: 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.

  • 8/7/2019 3043_SRS_1

    15/16

    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 thestudent 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 otherthrough 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.

  • 8/7/2019 3043_SRS_1

    16/16

    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 teach8.

    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

    INSTALLATIONA Readme file for installation instructions and required dependencies will be provided

    with the software. An automated installer script will also be provided.