New Final Report of Distance Education System Virtual Classroom[With Coding]

72
DISTANCE EDUCATION SYSTEM : Virtual Classroom +-hapter 1 INTRODUCTION 1.1 Purpose This report represents the proposal for the project of DISTANCE EDUCATION SYSTEM: VIRTUAL CLASSROOM. The purpose of the document is to collect, analyze define high level needs and features or our proposed system. The aim of the project is to produce the system so as to be user-friendly, cheap, extendable and easily configurable. The project will mainly creating a prototype of the system and gradually adding to its additional services as they are developed. 1.2 Background The advancement in network technology has made it possible for transmission of media at real time over the network. DISTANCE EDUCATION SYSTEM: VIRTUAL CLASSROOM allows class room to get digitized with student at remote place can even attend the lectures. VIRTUAL CLASSROOM allows any number of students to attend the lecture which is major advantage over conventional classroom which limits number of students participating for a given lecture. This even allows lecture 1

Transcript of New Final Report of Distance Education System Virtual Classroom[With Coding]

Page 1: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

+-hapter 1

INTRODUCTION

1.1 Purpose

This report represents the proposal for the project of DISTANCE EDUCATION

SYSTEM: VIRTUAL CLASSROOM. The purpose of the document is to collect, analyze

define high level needs and features or our proposed system. The aim of the project is to

produce the system so as to be user-friendly, cheap, extendable and easily configurable.

The project will mainly creating a prototype of the system and gradually adding to its

additional services as they are developed.

1.2 Background

The advancement in network technology has made it possible for transmission of

media at real time over the network. DISTANCE EDUCATION SYSTEM: VIRTUAL

CLASSROOM allows class room to get digitized with student at remote place can even

attend the lectures.

VIRTUAL CLASSROOM allows any number of students to attend the lecture

which is major advantage over conventional classroom which limits number of students

participating for a given lecture. This even allows lecture to be conducted at any given

time not necessarily during the working hours.

1.3 Proposed Project

The proposed system will serve as a interface between students and teacher.

Students and teacher will be able to communicate with each through this interface as they

communicate in regular classroom. Teacher can start session of particular subject to

which student can join from their respective place itself without coming to a common

place.

1

Page 2: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 2

LITERATURE SURVEY

2.1 Proposed System

2.1.1 Outline of VIRTUAL Classroom

[Courtesy: - www.ieeexplore.ieee.org/ Osami Kagawa & Yahiko Kambayashi, Department of

Information Science, Faculty of Engineering Kyoto University, Sakyo, Kyoto 606-01 JAPAN, Advanced

Database Functions for Distance Education System : VIRTUAL Classroom.]

Figure 1 shows a conceptual image of VIRTUAL Classroom. A teacher and students are

located in a distributed environment utilizing workstations, microphones, video cameras, and

personal databases. Students are free to attend a class even after real time class was over for

replaying the process of the lecture.

Students receive the latest documentations such as text files . Even in the middle of

lecture, they can generate their own notebooks based on those materials according to their

interest and level of understanding. For example, the contents can be supplemented by adding

2

Page 3: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

comments, underlining and linking with other materials, and VIRTUAL of materials on screen

can be changed.

The teacher can select a student who is suitable for a subject in a lecture and go to the

core of the subject after asking the student some questions or opinions. They communicate with

each other not only via camera and microphone but also via shared board writing text. The

process of conversations is broadcasted to other students and they can express their impressions

or opinions on the subject any time.

The system shows the responses for all students in real-time. The conversation style

lecture helps to ensure that not only the partner student but also other students understand the

subject deeply.

VIRTUAL Classroom utilizes an Ethernet local area network for the communication

support. The goal of VIRTUAL Classroom is not only to realize the facilities in a real classroom

but also present innovative computer-aided educational means.

The major modules of our project are as follows:-

1. VIDEO CONFERENCING:- A system enables high-resolution videoconferencing

images to be transmitted. A camera sequentially samples a series of small portions of

a general scene, and a composite image of the entire general scene is transmitted. The

technology used in a video teleconference (VTC) system is digital compression of

audio and video streams in real time. To establish this module java media framework

package is used, which provides Real Time Protocol (RTP) for transmission and

reception of videos.

2. UPLOAD/DOWNLOAD (MATERIAL REPOSITORY):- a centralized server

repository is used to hold all the teaching material of each particular teacher. Teacher

can upload the study material to this account or directory as well as download it from

server while student can only download it in similar ways.

3

Page 4: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3. SESSION MANAGEMNET:- Student and teacher are first authenticated before they

can join any session. Session management is done with help of centralized database

(MS-ACCESS) placed on a server. Multiple logins for both student and teacher are

not allowed.

4. VISUAL ATTENDANCE: - visual attendance is used by teacher to keep track of

students who are currently joined to a particular session. At the end of session the

attendance sheet is automatically stored into the database.

5. MONITOR: - teacher can monitor all the student during the session who are currently

joined the session using the monitor facility. If the student is doing some other tasks

during the session the teacher can debar the student by using visual attendance and

student then onwards not allowed to join any other session.

2.1.2 General Idea

In communication window, all the modules are implemented together. First of all,

all clients are connected to the server through proper authentication. When group of clients is

formed then session starts. For video conferencing, a window is present. From that window,

server can deliver session to all the clients. When client asks any question by using chatting

module then this query is passed to the server as well as to the clients. Server can reply this query

using chatting facility or using video conferencing facility. Server act as a Database for session.

Client can download various documents from server. Clients can also download the files,

documents from server when session is not started. After finishing of session, server can

disconnect all connection with clients.

So, in this project we described the extensive use of video teleconference technology and

architecture of interaction support facilities in distance education system: VIRTUAL Classroom,

proposing effective symbolic representation for supporting one-to-many interactions.

4

Page 5: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.2 Hardware and Software Requirements

2.2.1 Software Interface

1. Application Libraries : Java Media Frame work

2. Language : Jdk1.6.0

2.2.2 Hardware Interface

1. Machine : Pentium IV/laptop etc.

2. Memory : 256 MB RAM (Minimum for server)

3. Display Option : VGA

4. Input Device : Keyboard, Mouse, Webcam

5. Operating System : Windows OS

2.2.3 System Requirement

1. The System is to run under Microsoft Windows OS.

2. Windows 2000A Pentium 100 MHz PC (or Faster).

3. At least 16 Mega bytes (MB) RAM

4. Additional drivers of web-cam is required.

2.3 Java Media Framework (JMF)

2.3.1 Introduction

The Java Media Framework (JMF) is an application programming interface (API) for

incorporating time-based media into Java applications and applets.

JMF 2.0 is designed to:

o Be easy to program

o Support capturing media data

o Enable the development of media streaming and conferencing applications in Java

o Enable advanced developers and technology providers to implement custom

solutions based on the existing API and easily integrate new features with the

existing framework

5

Page 6: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

o Provide access to raw media data

o Enable the development of custom, downloadable demultiplexers,

codec’s, effects processors, multiplexers, and renderers (JMF plug-ins)

Current version JMF 2.1.1.

JMF contains classes that provide support for RTP (Real-Time Transport Protocol).

o RTP enables the transmission and reception of real-time media streams across the

network.

o RTP can be used for media-on-demand applications as well as interactive services

such as Internet telephony.

2.3.2 Time-based media

Any data that changes meaningfully with respect to time can be characterized as time-

based media.

Audio clips, MIDI sequences, movie clips, and animations are common forms of time-

based media.

Time-based media is often referred to as streaming media -- it is delivered in a steady

stream that must be received and processed within a particular timeframe to produce

acceptable results.

A media stream is the media data obtained from a local file, acquired over the network, or

captured from a camera or microphone.

Media streams that contain multiple tracks are often referred to as multiplexed or

complex media streams.

Demultiplexing is the process of extracting individual tracks from a complex media

stream.

Media streams can be categorized according to how the data is delivered:

o Pull (Client Side Pull): data transfer is initiated and controlled from the client

side. For example, Hypertext Transfer Protocol (HTTP) and FILE are pull

protocols.

o Push (Server Side Push): the server initiates data transfer and controls the flow of

data. For example, Real-time Transport Protocol (RTP) is a push protocol used for

6

Page 7: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

streaming media. Similarly, the SGI MediaBase protocol is a push protocol used

for video-on-demand (VOD).

An output destination for media data is sometimes referred to as a data sink. Examples:

speaker, monitor, file, network connection.

2.3.3 Managers

JMF uses intermediary objects called managers  to integrate new implementations of key

interfaces that define the behavior and interaction of objects used to capture, process, and

present time-based media. JMF uses four managers:

o Manager:  handles the construction of Players, Processors, DataSources, and

DataSinks.

o PackageManager:  maintains a registry of packages that contain JMF classes, such

as custom Players, Processors, DataSources, and DataSinks.

o CaptureDeviceManager:  maintains a registry of available capture devices.

o PlugInManager:  maintains a registry of available JMF plug-in processing

components, such as Multiplexers, Demultiplexers, Codec’s, Effects, and

Renderers.

2.3.4 Capture

Multimedia capturing devices are abstracted as DataSources.

a device that provides timely delivery of data can be represented as a PushDataSource.

Some devices deliver multiple data streams, for example, an audio/video conferencing

board might deliver both an audio and a video stream.

7

Page 8: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.3.5 Capturing Time-Based Media with JMF

To capture media data, you:

1. Locate the capture device you want to use by querying the CaptureDeviceManager.

2. Get a CaptureDeviceInfo object for the device.

3. Get a MediaLocator from the CaptureDeviceInfo object and use it to create a

DataSource.

4. Create a Player or Processor using the DataSource.

5. Start the Player or Processor to begin the capture process.

2.3.6 Real-Time Transport Protocol

RTP is defined in IETF RFC 1889, a product of the AVT working group of the Internet

Engineering Task Force (IETF). RTP provides end-to-end network delivery services for the

transmission of real-time data. RTP is network and transport-protocol independent, though it is

often used over UDP.

Fig. 2.3.6: RTP architecture

8

Page 9: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

RTP can be used over both unicast and multicast network services. Over a unicast

network service, separate copies of the data are sent from the source to each destination. Over a

multicast network service, the data is sent from the source only once and the network is

responsible for transmitting the data to multiple locations. Multicasting is more efficient for

many multimedia applications, such as video conferences. The standard Internet Protocol (IP)

supports multicasting.

2.3.7 RTP Services

RTP enables you to identify the type of data being transmitted, determine what order the

packets of data should be presented in, and synchronize media streams from different sources.

RTP data packets are not guaranteed to arrive in the order that they were sent - in fact,

they’re not guaranteed to arrive at all. It’s up to the receiver to reconstruct the sender’s packet

sequence and detect lost packets using the information provided in the packet header. While RTP

does not provide any mechanism to ensure timely delivery or provide other quality of service

guarantees, it is augmented by a control protocol (RTCP) that enables you to monitor the quality

of the data distribution. RTCP also provides control and identification mechanisms for RTP

transmissions.

If quality of service is essential for a particular application, RTP can be used over a

resource reservation protocol that provides connection-oriented services.

2.3.8 Media handling using JMF

2.3.8.1 Video Transmission

1. If the stream is multiplexed, the individual tracks are extracted.

2. If the individual tracks are compressed, they are decoded.

3. If necessary, the tracks are converted to a different format.

4. Create RTP session of each track.

5. Input stream is buffered and then sent by processor.

9

Page 10: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.3.8.2 Video Reception

1. Open RTP session and create receive stream.

2. Attach buffer to receive stream.

3. Wait for RTP data to arrive.

4. Create player to play streaming data & start.

5. Update player time to time to get new data.

6. When transmission ends close player & close stream connection.

2.4 Overall Description

2.4.1 Product Perspective

Distance Education System: VIRTUAL CLASSROOM is basically a Server-client application

used on teaching faculty’s machine teacher’s and student’s machine as client and server as

intermediates between clients.. Here group of client is formed which together will join session of

video conferencing with teacher in presence of proper authentication. The interface must be very

much user friendly. Video capturing will require additional hardware web-cam along with it

necessary software required for web-cam. It should be GUI based application. Program should

be platform independent. It has main three modules which plays important role in developing

this software.

1. Video Conferencing.

2. File Upload-Download.

3. Question/Answer

2.4.2 Product Functions

This is simple program. Following are the functionalities required:

1. Video Conferencing:-

a. Capture the video of session.

b. Broadcast this video using JMF package.

c. Receive this video at client side.

10

Page 11: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

d. Point

e. To point connection for particular client (one who ask query).

2. File Upload-Download

a. Server used for file uploading and downloading.

b. Create window which provide uploading facility.

c. Uploading facility is provided only to server side.

d. For downloading, all files are displayed within a combo box according to the

respective subject.

3. Chatting module

a. Single server-multiple clients.

b. Students can ask query through chatting module..

c. Private chatting facility is provided to both student and teacher.

4. Authentication

a. Client’s authentication.

5. Visual attendance

a. Live attendance.

b. Storing of attendance.

6. Session management

a. Student validation.

b. Restriction to Multiple session login.

7. Monitoring System

a. Monitoring student misconduct.

2.4.3 User Characteristics

The user is required to know basic knowledge of computer and how to join a video conferencing

session.

2.4.4 General Constraints

1. LAN should be in working condition.

2. There should not be any type of congestion on network.

11

Page 12: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.4.5 Assumptions and Dependencies

1. The server and client must have Java environment.

2. Windows OS environmental necessity.

3. Web cam must be attached to both server and client.

2.5 Specific Requirements

2.5.1 Functional Requirements

There is session management between server and clients.

a. SERVER:-

1. Server will moderate session.

2. This session starts above three modules.

3. Retrieves’ values from databases.

4. If upload/download module then work accordingly.

b. CLIENT:-

1. Client joins the session.

2. Session may be of type video, chat or downloading.

3. Client can disconnect himself or by force of server.

2.5.2 External Interface Requirements

1. Web cam must be supported by computer.

2. LAN between server computer and client computer.

3. Microphone should be attached with clients.

4. Server must be in running state.

12

Page 13: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.5.3 Performance Constraints

1. Static (Capacity) Requirements: - It requires minimum two terminals with one client

and at least web cam present on both client sides.

2. The response time should be less.

3. Multiple Client can access server at a time.

4. There should be proper response to clients query.

13

Page 14: New Final Report of Distance Education System Virtual Classroom[With Coding]

Server

Client

Upload

Download

Server

Authentication

Grouping

Chatting

Video Conferencing

Database

Visual Attendance

Send, receive

Send, receive

Send, receive

Send, receive

Select File

UploadUploadDownload

Select

Download

Update/Fetch

Request, Update

Authenticate

Group

Request, Reply

Request, Reply

Main Form

-Question Answering

-Video Conferencing

-File Download

-Grouping

-Authentication

Question Answering

STUDENT

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 3

DESIGN

3.1 Data Flow Diagram:-

Fig.No.3.1: Data Flow Diagram

14

3.2 Overall Design

Page 15: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

15

Page 16: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.3 Use Case Diagram :-

Fig.No.3.3: Use Case Diagram

3.4 Low Level Design:-

16

Server

Database

UploadTakes Attendance

Session

TeacherDownload

Authentication

Video Conference

Question/Answer

Student

Visual Attendance

Gives Attendance

Page 17: New Final Report of Distance Education System Virtual Classroom[With Coding]

CLIENTSERVER

Request to join

Authenticate

DATABASE

Check for proper session, authentication

Update Attendance

Session Ended

UpdateDatabase

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1 Design Diagrams:-

In design diagram, we have shown actual communication between multiple client

through server by using different parts of these modules. This module is responsible for handling

of database and updating the visual attendance component. This also provides facility to store

daily attendance.

3.4.1.1 Attendance, Authentication for Session:-

Fig.No.3.4.1.1: Attendance, Authentication for Session

17

Page 18: New Final Report of Distance Education System Virtual Classroom[With Coding]

Capture Device

Media Locator

Data Source

Processor

RTP Manager

Send Stream

RTP Manager

Data Source

Player

Receive Stream

Client Send Client Receive

RTP

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.2 Video conferencing:-

Fig.No. 3.4.1.2 : Video conferencing

18

Page 19: New Final Report of Distance Education System Virtual Classroom[With Coding]

Routes the messages

Request from clients

Send reply to clients

Stop server

Start serverSERVER

CLIENT Start client Send request to server

Receive reply from diff client through server

Stop client

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.3 Chatting Module:-

Server:-

Client:

19

Page 20: New Final Report of Distance Education System Virtual Classroom[With Coding]

Student Interface

Student Teacher

Teacher Interface

Server

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.4 Upload and download:

Fig.No.3.4.1.4: Upload and download

20

Page 21: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 4

IMPLEMENTATION

4.1 Authentication Module:-

This is the first module to be invoked when project starts to execute. On both teacher and

student side teacher and student has to be authenticated for starting session respectively. Here we

have used MS-ACCESS(2007). This database has all authentication information about teacher

and student also information required for starting session appropriately. The database has

following schemas:

For Each Class:

Fig.4.1 Subject Allocation for teachers using access DB

21

Page 22: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

For Teacher:

Class LogIn:

import javax.swing.*;

import java.io.*;

import java.net.*;

import java.util.*;

import java.awt.*;

import java.awt.Color.*;

public class LogIn extends javax.swing.JFrame

{ Socket st;

DataInputStream input;

DataOutputStream out;

/** Creates new form LogIn */

public LogIn()

{

22

Page 23: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

initComponents();

try {

st=new Socket(Network.ip,Network.port);

input=new DataInputStream(st.getInputStream());

out=new DataOutputStream(st.getOutputStream());

out.writeUTF("Login Form");

}

catch(Exception e) {

JOptionPane.showMessageDialog(this, "Disconnect from Server");

System.exit(1);

}

}

private void initComponents()

{

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

txtid = new javax.swing.JTextField();

txtpass = new javax.swing.JPasswordField();

jLabel3 = new javax.swing.JLabel();

cmb = new javax.swing.JComboBox();

btnx = new javax.swing.JButton();

btnlog = new javax.swing.JButton();

jLabel4 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle("!!! DES Login !!!"); // NOI18N

23

Page 24: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

setMaximizedBounds(new java.awt.Rectangle(300, 100, 455, 365));

setMinimumSize(new java.awt.Dimension(455, 365));

setName("Form"); // NOI18N

setResizable(false);

setLocation(300,100);

addWindowListener(new java.awt.event.WindowAdapter()

{

public void windowClosing(java.awt.event.WindowEvent evt) {

formWindowClosing(evt);

}

});

getContentPane().setLayout(null);

jLabel1.setFont(new Font("Cambria Math",Font.PLAIN,18)); // NOI18N

jLabel1.setForeground(new Color(255,255,255)); // NOI18N

jLabel1.setText("Username"); // NOI18N

jLabel1.setName("jLabel1"); // NOI18N

getContentPane().add(jLabel1);

jLabel1.setBounds(30, 80, 82, 30);

jLabel2.setFont(new Font("Cambria Math",Font.PLAIN,18)); // NOI18N

jLabel2.setForeground(new Color(255,255,255)); // NOI18N

jLabel2.setText("Password"); // NOI18N

jLabel2.setName("jLabel2"); // NOI18N

getContentPane().add(jLabel2);

jLabel2.setBounds(30, 110, 79, 30);

24

Page 25: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

txtid.setFont(new Font("Cambria Math",Font.BOLD,14)); // NOI18N

txtid.setForeground(new Color(255,0,0)); // NOI18N

txtid.setName(""); // NOI18N

getContentPane().add(txtid);

txtid.setBounds(120, 80, 130, 20);

txtpass.setFont(new Font("Cambria Math",Font.BOLD,14)); // NOI18N

txtpass.setName(""); // NOI18N

getContentPane().add(txtpass);

txtpass.setBounds(120, 110, 130, 20);

jLabel3.setFont(new Font("Cambria Math",Font.PLAIN,18)); // NOI18N

jLabel3.setForeground(new Color(255,255,255)); // NOI18N

jLabel3.setText("Login As"); // NOI18N

jLabel3.setName("jLabel3"); // NOI18N

getContentPane().add(jLabel3);

jLabel3.setBounds(30, 140, 69, 30);

cmb.setFont(new Font("Cambria Math", Font.PLAIN, 14)); // NOI18N

cmb.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Teacher", "Student" }));

cmb.setName("cmb"); // NOI18N

cmb.addItemListener(new java.awt.event.ItemListener()

{

public void itemStateChanged(java.awt.event.ItemEvent evt) {

cmbItemStateChanged(evt);

}

25

Page 26: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

});

getContentPane().add(cmb);

cmb.setBounds(120, 140, 130, 20);

btnx.setFont(new Font("Cambria Math", Font.PLAIN, 14)); // NOI18N

btnx.setText("Exit"); // NOI18N

btnx.setName("btnx"); // NOI18N

btnx.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnxActionPerformed(evt);

}

});

getContentPane().add(btnx);

btnx.setBounds(150, 180, 100, 20);

btnlog.setFont(new Font("Cambria Math", Font.PLAIN, 14)); // NOI18N

btnlog.setText("LogIn"); // NOI18N

btnlog.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnlogActionPerformed(evt);

}

});

getContentPane().add(btnlog);

btnlog.setBounds(50, 180, 90, 20);

26

Page 27: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

jLabel4.setIcon(new ImageIcon("39815-bigthumbnaildcd.jpg")); // NOI18N

jLabel4.setText(null); // NOI18N

jLabel4.setName("jLabel4"); // NOI18N

jLabel4.setPreferredSize(new java.awt.Dimension(600, 600));

getContentPane().add(jLabel4);

jLabel4.setBounds(0, -130, 460, 600);

pack();

}// </editor-fold>

String str="Teacher";

String id,pass;

private void btnlogActionPerformed(java.awt.event.ActionEvent evt)

{

id=txtid.getText().trim();

pass=txtpass.getText().trim();

if(id.equals("")||pass.equals(""))

{

JOptionPane.showMessageDialog(this,"Missing Username or Password");

txtid.setText("");

txtpass.setText("");

return;

}

try

{

out.writeUTF(id);

out.writeUTF(pass);

out.writeUTF(str);

27

Page 28: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

}

catch(Exception e)

{ }

if(str.equals("Teacher"))

{

try

{

String tch=input.readUTF();

int i=0;

if(tch.equals("True"))

{

if(input.readBoolean()==true)

{

st.close();

Teacher1 ts=new Teacher1(txtid.getText());

ts.setVisible(true);

ts.setLocation(300, 100);

dispose();

}

else

{

JOptionPane.showMessageDialog(null,"You have already Logged in.");

txtid.setText("");

txtpass.setText("");

}

}

28

Page 29: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

else

{

JOptionPane.showMessageDialog(null,"Incorrect ID or Password");

txtid.setText("");

txtpass.setText("");

}

}

catch(Exception e)

{

try

{

JOptionPane.showMessageDialog(null,"error is "+input.readUTF());

txtid.setText("");

txtpass.setText("");

}

catch(Exception e1)

{

}

}

} // TODO add your handling code here:

if(str.equals("Student"))

{

try

{

String sch=input.readUTF();

29

Page 30: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

int i=0;

if(sch.equals("True"))

{

if(input.readBoolean()==true)

{

if(input.readBoolean()==true)

{

dispose();

Student1 ss=new Student1(txtid.getText());

ss.setVisible(true);

ss.setLocation(300, 100);

st.close();

}

else

{

JOptionPane.showMessageDialog(null,"You are Debar Student");

txtid.setText("");

txtpass.setText("");

}

}

else

{

JOptionPane.showMessageDialog(null,"You are already Logged In");

txtid.setText("");

txtpass.setText("");

}

30

Page 31: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

}

else

{

JOptionPane.showMessageDialog(null,"Incorrect ID or Password");

txtid.setText("");

txtpass.setText("");

}

}

catch(Exception e)

{

try

{

JOptionPane.showMessageDialog(null,"error is "+input.readUTF());

txtid.setText("");

txtpass.setText("");

}

catch(Exception e1)

{ }

}

}

}

private void btnxActionPerformed(java.awt.event.ActionEvent evt)

{

try

{

int decision=JOptionPane.showConfirmDialog(this,"Are you sure to cancel Login?", "Message",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);

31

Page 32: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

if(decision==0)

{

setDefaultCloseOperation(EXIT_ON_CLOSE);

st.close();

System.exit(0);

}

}catch(Exception e)

{ }

}

private void cmbItemStateChanged(java.awt.event.ItemEvent evt)

{

Object obj=cmb.getSelectedItem();

str=obj.toString();

}

private void formWindowClosing(java.awt.event.WindowEvent evt)

{

try {

int decision=JOptionPane.showConfirmDialog(this,"Are you sure to cancel Login?", "Message",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);

if(decision==0) {

setDefaultCloseOperation(2);

st.close();

}

else {

setDefaultCloseOperation(0);

}

}

32

Page 33: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

catch(Exception e)

{ }

}

public static void main(String args[])

{

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

try {

new LogIn().setVisible(true);

}

catch(Exception e)

{ }

}

});

}

private javax.swing.JButton btnlog;

private javax.swing.JButton btnx;

private javax.swing.JComboBox cmb;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JTextField txtid;

private javax.swing.JTextField txtpass;

}

33

Page 34: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Teacher login form:

Fig.4.2 Teacher login form

Student Login form:

34

Page 35: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.3 Students login Form

4.2 Session Management Module:-

In this module we are dealing with starting appropriate session from teacher side. And

joining proper session for each student’s respective class and subject. From teacher side we

invoke subList form to select subject for new session. Other necessary information is taken from

database. With this information teacher starts new session for any class with his subject. Multiple

selection of subject in session management is not allowed.

Student sees on going sessions in his window in Active session and tries to join

appropriate session. If he is valid, i.e. with same class as of session is meant for, for that session

then he is granted to join the session otherwise he is not allowed to join session until proper

session appears for him.

Subject List:-

Fig.4.4 Session Management-sub selection

35

Page 36: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

4.3 Chatting module:-

The chatting module is implemented on the basis of chat room which are normally

provided by yahoo, rediffmail etc. The chatting module is based on client-Server model. When

client connects to the server then message is displayed in server window about the connection of

clients. When client asks any query then this query is broadcasted to server and clients. Reply

from server is answer to the query which is broadcasted to all clients if he wants .Private chatting

facility is also provided.

Server: -

1. Establish the connection with clients.

2. Receive different questions from clients.

3. Routes all the messages to clients as required.

Client: -

1. Establish the connection with server.

2. Send different queries to server.

3. If client wants to send another query then sends the query..

36

Page 37: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.5 Student Side main window with chatting

4.4 Video conferencing

A system enables high-resolution videoconferencing images to be transmitted. A camera

sequentially samples a series of small portions of a general scene, and a composite image of the entire

general scene is transmitted. Simultaneously, an individual small area of the general scene where high

time resolution is desirable is sampled at a high time resolution by a dedicated camera. The high-time-

resolution images are then patched into the composite image.

The technology used in a video teleconference (VTC) system is digital compression of audio and

video streams in real time. The hardware or software that performs compression is called a codec

(coder/decoder). The resulting digital stream of 1's and 0's is subdivided into labeled packets, which are

then transmitted through a digital network of some kind (usually ISDN or IP). The use of audio modems

in the transmission line allow for the use of POTS, or the Plain Old Telephone System, in some low-

37

Page 38: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

speed applications, such as video telephony, because they convert the digital pulses to/from analog

waves in the audio spectrum range.

The other components required for a VTC system include:

Video input: video camera or webcam.

Video output: computer monitor, television or projector

Audio input: microphones

Audio output: usually loudspeakers associated with the display device

Data transfer: analog or digital telephone network, LAN or Internet.

To establish this module java media framework package is used, which provides Real

Time Protocol (RTP) for transmission and reception of videos.

The Java Media Framework (JMF) is a large and versatile API used to process time-

based media. JMF, currently at version 2.1, is Sun's initiative to bring time-based media

processing to Java. Time-based media is data that changes meaningfully with respect to time,

such as audio and video clips, MIDI sequences, and animations.

Student side Window for Video Conferencing:-

38

Page 39: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.6 Student side window for video conferencing

Teacher side Video Conferencing:-

Fig.4.7 Teacher side video conferencing

39

Page 40: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

4.5 Monitoring System:-

This system is designed to monitor the students attending session. Here teacher can

monitor the students who have presently joined the session. When teacher starts monitoring

system, web cams present at all student sites get activated. Now teacher can see each student

with his activities. Here teacher has right to end the session for any particular student if he/she

found that student performing other activities than attending lecture. Teacher just has to click on

the roll number of the student present in the visual attendance. If any of such students is debarred

from session then he is not allowed to join that session again.

Student debarred from session:-

Fig.4.8 Students Debarring process

40

Page 41: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

4.6 Upload Facility:-

In our project we are maintaining a server as a repository for study material of each

teacher. There are different such folders present on server for each teacher where teacher can

store study material for respective subject. To do such he can use upload facility provided by our

project. There are following implementation issues regarding upload facility:

File to be uploading is chosen using open file dialog.

The input file is buffered and the uploaded

Only teacher will be allowed to upload the file into the account or directory.

Teacher side Upload Facility:-

Fig.4.9 Teacher side Upload facility

41

Page 42: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

4.7 Download Facility:-

We are providing a download facility for both student and teacher. In this facility we are

allowing students to download material of respective subject. Also teacher can download any

material for his own purpose. There are following implementation issues regarding download

facility:-

List of files present in account or directory at the server are displayed to student for

download.

This list of file is dynamically uploaded.

The selected file is downloaded to a specified folder

Student side Download facility:-

42

Page 43: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.10 Student side Download facility

4.8 Visual Attendance Module:-

This module is purposefully introduced in our project to keep track of regular attendance

for each subject. Here when student joins the session then block with his roll number in visual

attendance changes red to green.

When teacher stops the session, attendance is stored on respective subject’s attendance

folder on server. Here students debarred from session are not considered for session. Even if

student disjoins session in between, his attendance is not marked for present numbers.

Fig.4.11 Visual Attendance

43

Page 44: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 5

TESTING

5.1 Test plan

This section gives the plan of testing the modules developed of the software project

DISTANCE EDUCATION SYSTEM : VIRTUAL CLASSROOM.

The testing has been done on the following modules:

Video conferencing

Chatting module

File upload and download

Visual attendance

Session management

Monitoring system

44

Page 45: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Software requirements specification and software design description of this project are the

basis of this test plan.

Test plan was scheduled after completion of each module.

5.2 Types of Testing

5.2.1 White Box Testing

Testing of a function with knowing internal structure of the program. It is also known as glass box, structural, clear box and opens box testing. A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can then see if the program diverges from its intended goal. White box testing does not account for errors caused by omission, and all visible code must also be readable.

5.2.2 Black Box Testing

A black box testing of integration builds includes functional, interface, error recovery, and stress and out of bound input testing. All black box software tests are traced to control requirements. In addition to static requirements a black box of a fully integrated system against scenario sequence of events is designed to model fields operation. Performance testing in integrated as an internal part of the black box testing. Synonyms for black box include: behavioural, functional, opaque-box and closed box. White box test design allows one to peek inside the “box”, and it focuses specifically on using internal knowledge of the software to guide the selection of the test data.

5.2.3 Unit Testing

45

Page 46: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

In computer programming, a unit test is a method of testing the correctness of a particular module of source code. The idea is to write test cases for every non-trivial functions or method in the module so that each test case is separate from the others if possible. This type of testing is mostly done by the developers. The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. It provides a written contract that the piece must satisfy. This isolated testing provides four main benefits.Unit testing allows the programmer to refractor code at a later date, and make sure the module still works correctly (regression testing). This provides the benefit of encouraging programmers to make changes to the code since it is easy for the programmer to check if the piece is still working properly.

5.2.4 Integration Testing:

Integration testing was carried out to check whether each module works properly with the integrated module. Different inputs were given to the secondary module from the primary to check whether it works properly for each input which comes from the higher level. Both Bottom-Up and Top-Down tests were carried out. The purpose of integration testing is to verify functional, performance and reliability requirements placed on major design items. These “design items”, i.e. assemblages(or group of units), are exercised through their interfaces using Black box testing, success and errors cases being simulated via appropriate parameter and data inputs. Simulated usage of shared data areas and inter process communication is tested; individual subsystems are exercised through their input interface. All test cases are constructed to test that all components within assemblages interact correctly, for example, across procedure calls and process activations.

5.2.5 Performance testing:

In software engineering, performance testing is testing that is performed to determine how fast some aspect of a system performs under a particular workload. Performance testing can serve different purposes. It can demonstrate that the system meets performance criteria. It can compare two systems to find which performs better. Or it can measure what parts of the system or workload cause the system to perform badly. In the diagnostic case, software engineers use tool such as profilers to measure what parts of a device or software contribute most to the poor performance or to establish throughput levels for maintained acceptable response time.

46

Page 47: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

5.3 Validation and Verification

Verification is one aspect of testing a product’s fitness for purpose. Validation is the

complementary aspect. Often one refers to the overall checking process as V & V. validation:

“Are we building the right product?” i.e. does the product do what the user really requires.

Verification: “Are we building the product right?” i.e. does the product conform to the

specifications. The verification process consists of static and dynamic parts. E.g. for a software

product one can inspect the source code (static) and run against specific test cases (dynamic).

Validation usually can only be done dynamically, i.e. the product is tested by putting it through

typical usages and atypical usages (“can we break it?”).

5.4 Test summary:-

5.4.1 Test case specification and results:-

a) Video conferencing

Webcam interface :-

Aim: - connectivity of webcam with pc is appropriate and correct media locator is

found.

Result: Success

Sending captured media :-

Aim: - captured media is sent to prescribed IP address.

Result: Success

Receiving captured media :-

Aim: - captured media is received to prescribed IP address.

Result: Success

47

Page 48: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

b) Chatting module

Teacher side (Client):-

Aim: - Typed message is sent successfully to all clients or in private and message

sent from students is received successfully.

Result: Success

Student side (client):-

Aim: - Typed message is sent successfully to all clients and message sent from

different clients is received successfully.

Result: Success

c) File upload and download

Upload file:-

Aim: - File specified by user (teacher) is uploaded to server.

Result: Success

Download file:-

Aim:- File specified by user (student and teacher)is downloaded from server to

local drive.

Result: Success

d) Authentication

Teacher login:-

Aim: - Teacher who is already registered for particular subject is allowed to login.

Result: Success

Student login:-

Aim: - Students belonging to particular class who are already registered are

allowed to login.

48

Page 49: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Result: Success

Student login:-

Aim: - Student who is not registered i.e. whose records not in database are not

allowed to login.

Result: Success

e) Visual attendance

Attendance-

Aim: - Students joined to particular session must be indicated at corresponding

teacher side.

Result: Success

f) Session management

Student validation :-

Aim: - A student can join session of a particular subject only if he belongs to that

class

Result: Success

Student joining multiple session:-

Aim: - A student already joined to a particular session should not be permitted to

join another session.

Result: Success

g) Monitoring system

Student monitoring:-

Aim: - A student joined to particular session found in misconduct will have his

session aborted from teacher side.

Result: Success

49

Page 50: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 6

RESULT ANALYSIS

50

Page 51: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 7

APPLICATIONS

1. Establishment of point to point connection between teacher and student will be

providing a better interactive interface for both the people.

2. Simultaneous storing of media along with transmission has to be done in future so that

recorded lecture can be played again and again.

3. Service helps user to attend lectures from where he/she want.

51

Page 52: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 8

CONCLUSION AND FUTURE SCOPE

8.1Conclusion :-

The DISTANCE EDUCATION SYSTEM: VIRTUAL CLASSROOM system is

useful to a single college environment. System can provide better facilities for video

conferencing as well as E-learning materials. Also it tracks daily attendance of students

present for respective session. In between sessions, student can communicate with teacher

with the help of chatting as well as video conferencing. Main advantage of this system is

removing limitation over the size of classroom.

We have successfully completed all the steps according to the project plan. We have

developed system capable of creating Virtual Classroom in real college environment.

8.2 Future Scope :-

The project DISTANCE EDUCATION SYSTEM: Virtual Classroom has undergone

various changes during its course of development. Here basically we have made the system

for LAN only. User can join the session only within LAN. We can extend our system to be

used over internet so that user can access his session from anywhere.

52

Page 53: New Final Report of Distance Education System Virtual Classroom[With Coding]

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Currently the attendance of students is not manipulated in database which in future

will be completely maintained in database.

REFERENCES

1. Advanced Database Functions for

Distance Education System: VIRTUAL

CLASSROOM

- Osami Kagawa,

Yahiko Kambayashi

2. Complete Reference - Herbert Schlitz

3. http://java.sun.com/javase/

4. jmf2_0-guide.pdf

5. Java Database Programming - O’Donnell

6. Javadocs

53