New Final Report of Distance Education System Virtual Classroom (With Coding)
New Final Report of Distance Education System Virtual Classroom (With Coding)
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.
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
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. 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.
The Java Media Framework (JMF) is an application programming interface (API) for incorporating time-based media into Java applications and applets.
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
Enable
the
development
of
custom,
downloadable
demultiplexers,
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.
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.
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
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
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.
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.
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.
13
Chapter 3 DESIGN
Send, receive
Client
Send, receive
Upload
Send, receive Send, receive
Upload
Download Upload
Server
Select File Select Download
Download
Server
Request, Update
Visual Attendance
Update/Fetch
Authentication
Grouping
Authenticate
Database
Group
14
Main Form
-Grouping
-Authentication
SERVER DATABASE
Main Form -Attendance -Question answering -video conferencing -file download - file upload -Grouping -Authentication
Visual Attendance
Question Answering
15 TEACHER
Server
Database
Visual Attendance
Session
Gives Attendance
Authentication
Video Conference
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.
SERVER
Update Database
Authenticate
17
Capture Device
RTP Manager
RTP Manager
Media Locator
RTP
Receive Stream
Data Source
Data Source
Processor
Player
Send Stream
Client Send
Client Receive
18
SERVER
Start server
Stop server
Client:
CLIENT
Start client
Stop client
19
Student Interface
Teacher Interface
Server
20
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:
21
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;
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();
23
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
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
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
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
} 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
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:
29
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
} 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
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
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
34
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:-
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
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.
38
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.
39
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
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
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
43
Chapter 5 TESTING
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.
44
45
46
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
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
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
50
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.
51
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.
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
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