0% found this document useful (0 votes)
504 views53 pages

New Final Report of Distance Education System Virtual Classroom (With Coding)

The document proposes the development of a Distance Education System called the Virtual Classroom that would allow students to attend lectures remotely through a virtual interface that provides video conferencing, uploading and downloading of course materials, session management, visual attendance tracking, and student monitoring capabilities. It describes the software and hardware requirements including the use of the Java Media Framework for transmitting video and audio streams in real-time over a network. The proposed system aims to digitize classrooms and make lectures accessible remotely at any time.

Uploaded by

Nitesh Lachake
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
504 views53 pages

New Final Report of Distance Education System Virtual Classroom (With Coding)

The document proposes the development of a Distance Education System called the Virtual Classroom that would allow students to attend lectures remotely through a virtual interface that provides video conferencing, uploading and downloading of course materials, session management, visual attendance tracking, and student monitoring capabilities. It describes the software and hardware requirements including the use of the Java Media Framework for transmitting video and audio streams in real-time over a network. The proposed system aims to digitize classrooms and make lectures accessible remotely at any time.

Uploaded by

Nitesh Lachake
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 53

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.

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

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.

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.

DISTANCE EDUCATION SYSTEM : Virtual Classroom

2.2 Hardware and Software Requirements 2.2.1 Software Interface


1. Application Libraries 2. Language : : Java Media Frame work Jdk1.6.0

2.2.2 Hardware Interface


1. Machine 2. Memory 3. Display Option 4. Input Device : : : : Pentium IV/laptop etc. 256 MB RAM (Minimum for server) VGA 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 o o o

Be easy to program Support capturing media data Enable the development of media streaming and conferencing applications in Java Enable advanced developers and technology providers to implement custom solutions based on the existing API and easily integrate new features with the existing framework

Provide access to raw media data


5

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Enable

the

development

of

custom,

downloadable

demultiplexers,

codecs, 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.

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 timebased media.

Audio clips, MIDI sequences, movie clips, and animations are common forms of timebased 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.

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

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.

PackageManager: maintains a registry of packages that contain JMF classes, such as custom Players, Processors, DataSources, and DataSinks.

o o

CaptureDeviceManager: maintains a registry of available capture devices. PlugInManager: maintains a registry of available JMF plug-in processing components, such as Multiplexers, Demultiplexers, Codecs, 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.

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

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, theyre not guaranteed to arrive at all. Its up to the receiver to reconstruct the senders 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.

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 facultys machine teachers and students 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

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

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

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

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 3 DESIGN

3.1 Data Flow Diagram:-

Video Conferencing Chatting

Send, receive

Client
Send, receive

Upload
Send, receive Send, receive

Upload

Download Upload

Server
Select File Select Download

Request, Reply Request, Reply

Download

Server
Request, Update

Visual Attendance
Update/Fetch

Authentication

Grouping
Authenticate

Database
Group

Fig.No.3.1: Data Flow Diagram

14

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.2 Overall Design STUDENT


Question Answering Video Conferencing -Question Answering (Listen Broadcast) -Video Conferencing Download File from server -File Download

Main Form

-Grouping

-Authentication

SERVER DATABASE

Main Form -Attendance -Question answering -video conferencing -file download - file upload -Grouping -Authentication

Visual Attendance

Question Answering

Video Conferencing -Session Management

Upload Files on Server

Download Files from Server

15 TEACHER

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Server

3.3 Use Case Diagram :-

Database

Visual Attendance

Session

Gives Attendance

Upload Takes Attendance

Question/Answer Student Teacher Download

Authentication

Video Conference

Fig.No.3.3: Use Case Diagram


16

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4 Low Level Design: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:-

Update Attendance CLIENT


Request to join Session Ended

SERVER

Update Database

Authenticate

Check for proper session, authentication DATABASE

Fig.No.3.4.1.1: Attendance, Authentication for Session

17

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.2 Video conferencing:-

Capture Device

RTP Manager

RTP Manager

Media Locator

RTP

Receive Stream

Data Source

Data Source

Processor

Player

Send Stream

Client Send

Client Receive

Fig.No. 3.4.1.2 : Video conferencing

18

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.3 Chatting Module:Server:-

SERVER

Start server

Request from clients

Routes the messages

Send reply to clients

Stop server

Client:

CLIENT

Start client

Send request to server

Receive reply from diff client through server

Stop client
19

DISTANCE EDUCATION SYSTEM : Virtual Classroom

3.4.1.4 Upload and download:


Student Teacher

Student Interface

Teacher Interface

Server

Fig.No.3.4.1.4: Upload and download

20

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

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

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

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

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

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

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

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

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

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

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

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

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

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Teacher login form:

Fig.4.2 Teacher login form Student Login form:

34

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 students 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

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

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-timeresolution 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 low37

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 timebased 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

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

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:-

39

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.8 Students Debarring process

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.

40

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Teacher side Upload Facility:-

Fig.4.9 Teacher side Upload facility

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.

41

DISTANCE EDUCATION SYSTEM : Virtual Classroom

The selected file is downloaded to a specified folder

Student side Download facility:-

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

42

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Fig.4.11 Visual Attendance

43

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

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.

44

DISTANCE EDUCATION SYSTEM : Virtual Classroom

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


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.

45

DISTANCE EDUCATION SYSTEM : Virtual Classroom

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

5.3 Validation and Verification


Verification is one aspect of testing a products 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?).

46

DISTANCE EDUCATION SYSTEM : Virtual Classroom

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

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):-

47

DISTANCE EDUCATION SYSTEM : Virtual Classroom

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

48

DISTANCE EDUCATION SYSTEM : Virtual Classroom

AttendanceAim: - 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

DISTANCE EDUCATION SYSTEM : Virtual Classroom

Chapter 6 RESULT ANALYSIS

50

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

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. Currently the attendance of students is not manipulated in database which in future will be completely maintained in database.

52

DISTANCE EDUCATION SYSTEM : Virtual Classroom

REFERENCES
1. Advanced Database Functions for - Osami Kagawa, Distance Education System: VIRTUAL Yahiko Kambayashi CLASSROOM 2. Complete Reference 3. http://java.sun.com/javase/ 4. jmf2_0-guide.pdf 5. Java Database Programming 6. Javadocs - ODonnell - Herbert Schlitz

53

You might also like