SessionAccount Plug-in Component for Virtual Classroom Tool

Goal: To create a plug-in component for the VC tool that takes the class attendance for a Virtual Classroom session. It will record the date of the session, the course number, the professor’s name, the number of students that attended, and the name of each student that logged in during the session. The secondary goal of the plug-in component is to monitor chat messages of the session and look for “keywords” that a teacher establishes at the beginning of a session. The plug-in component is written in JAVA.

In order to take attendance, the plug-in component monitors the class roster messages being sent from the VC Server. Class roster messages have a message ID 4 (for testing with the Universal Interface it uses a message ID of 1004). For each message with ID 4 that it receives it checks to see which students have a state of anything other than “offline.” The first and last name of the student and the time their state changed from offline is then written to a log file with the name: Course#_date.txt. The log file also contains the course number, the teacher’s name, and the current date of the session (see below).

The plub-in's Äsecondary goal is to monitor chat messages and search for messages that are related to a keyword(s). The professor must send a keyword or a series of keywords separated by a semi-colon. The teacher can send a normal chat message in the chat window of the VC Teacher tool to set the keywords. The teacher must use the syntax: KEYWORDSET: keyword1;keyword2;keyword3;etc.? When a message is received with an ID of 8 (for testing with the Universal Interface a message ID of 1008 was used) and has the above KEYWORDSET syntax the plug-in component will retrieve the keywords and store them in a hash table with hash keys related to the course number. It will also write the keywords that it will be monitoring into the log file with the same filename as above (see below).

To monitor the chat messages that are being sent by the teacher and students, the plug-in component looks for any messages that are sent with Message ID 8 (for testing purposes with the universal interface, a message ID of 1008 was used.) It will look for occurrences of the keywords and if it finds any messages that use the keywords, it will write them to the log file with the same filename as above. It will write the date the message was received and the first and last name of the person that sent the message. The plug-in component adds extra characters such as “\?”, “\+”, and “\=” so that the log file can easily be parsed when the session is over and the attendance is tallied (see below).

Finally Äwhen the session is considered to be over (determined by the teacher), the teacher can send another chat message with the word .ally.? The plug-in component will capture the message and call the function FinishAttendance() which will parse the log file and write to a file with the name AttendCourse#_date the total number of students that attended the class, along with a list of the students that mentioned a keyword at sometime during the session (see below). The plug-in component will tally the attendance only if the chat message contains the word "tally" by itself. This prevents issues in which the teacher or students send a message that contains the word "tally" and are not intentionally trying to tally the log file.

The Universal Interface was used to test the above plug-in component. The filename of the component is PluginComponent.java. To test this plug-in component with the Universal Interface:

1.) Compile:   javac –Xlint PluginComponent.java
2.) Compile the Interface Server: javac –Xlint InterfaceServer.java
3.) Run the Interface Server: java InterfaceServer 64.107.76.77
4.) Run the Plugin Component: java PluginComponent 127.0.0.1
5.) Send messages using the Universal Interface tool prjRemote 

Emily Ecoff
December 9, 2008
CS 2650 Final Report