new final report of distance education system virtual classroom[with coding]
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
DISTANCE EDUCATION SYSTEM : Virtual Classroom
15
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
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
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
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
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
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 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
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-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
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
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
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
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
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
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
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
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
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
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
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
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
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.
52
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