HomePage | RecentChanges | Index | Preferences | Upload

VMT Priority Projects

June through August

Preparation of Source Code Repository [Kofi]

Our goal is to create a repository of the source code that needs to be maintained to support the continuing development of the Virtual Math Teams software. This includes the following priorities:
• To create a subversion repository on a Math Forum server containing all the source code and files needed to compile the VMT system. Most of the source code is in Source Forge. Some changes for Spring Fest 2007 are in the German repository. Together, this should provide the source code corresponding to the production VMT system from Spring 2007 to the present. All of this code should be in our new subversion repository.
• To create an easy way for VMT developers this summer to check out code, modify it, compile the modifications, and test the modified code.
• To recompile the entire VMT system from source code. This will ensure that we have all of the source. It will allow us to update the system to be compatible with new versions of Java and other third party software used by the VMT system.
• The recompiled VMT system should be put on a Math Forum test server. Multiple developers should test it to ensure that all functionality is available and working. Functionality that is desirable but missing or faulty should be added to this document.
• Document the structure of the repository and provide user documentation for developers to access the repository and compile the system on various platforms (e.g., Mac and Windows development laptops and Linux test and production servers).
The VMT system includes the following components:
• The Concertchat [CC] client, including the chat window, a set of tabs for whiteboards and browsers, a menu system and several awareness displays.
• The Concertchat [CC] server.
• The Lobby, including functionality for administrators, teachers and students, as well as a browsing interface for ConcertChat rooms.
• Code for communication between the Lobby and ConcertChat.
• A database for ConcertChat objects.
• A database for the Lobby, including a file to generate a new database (including some sample data to provide initial passwords and content for testing).
• MediaWiki?, customized with single sign-on and MathML?.
• GeoGebra?, customized to be a multi-user component of VMT.
The ConcertChat code and the MediaWiki? code include many components that should not need to be modified during VMT development. In particular, Agilo and other low-level communication components should never be modified.
Make the VMT download compatible with the latest version of Java. Have the files downloaded to the user check that the user has all the required software versions – and automatically download everything needed. Have the downloaded files check for revisions to VMT.

Integration of Multi-User GeoGebra? [Jimmy]

Our goal is to create a new tab in the VMT environment, similar to the ConcertChat [CC] whiteboard, containing a version of the GeoGebra? dynamic math system. To see a ConcertChat room, go to http://vmt.mathforum.org/VMTLobby and register or login as “guest”/”guest”. From the Lobby, find a room or enter a sandbox room. To see GeoGebra?, go to http://www.geogebra.org.
The ConcertChat whiteboard (WB) has a number of features that we want to preserve in our GeoGebra? tab, necessitating some modification or sub-classing of GeoGebra? (GG) source code:
• The WB is multi-user. Every event (such as creation, modification, repositioning, deletion) of a WB object (line, rectangle, textbox) is broadcast from the current applet client to the server and then from the server to every client associated with the same chat room, including the broadcasting client.
• The WB history is scrollable. A history of all WB actions is maintained for each chat room. The history can be systematically reconstructed when an existing chat room is opened up in a new client. The history can also be scrolled back and forth to display any earlier state. • The WB can be graphically referenced from a new chat posting. A line from that chat posting will be displayed connecting the posting to an object on the WB or to a user-selected rectangle on the state of the WB that was current at the time of the posting. • We probably want to add a “locking” mechanism so that when one user is moving/modifying an object no one else can move/modify it. An awareness message should be displayed when an object is locked. These are essential features of the VMT WB environment that we need to preserve in GG. This means that objects in the GG tab must inherit characteristics from WB classes as well as from GG classes. Obviously, we would like to modify GG classes as little as possible, so as to stay as compatible as possible with the extensive functionality built on the basic GG classes in the current and possible future versions of GG, including the Javascript API of GG. Whether this can best be achieved with some form of wrapper or multiple inheritance scheme needs to be explored. We also need to discover what minimal set of GG and WB classes need to be modified. We want to import/export GG drawings that are compatible with the Javascript API of GG. An initial task is to identify a set of objects and actions in GG that will need to be modified to support the above characteristics of WB objects. For instance, what actions of what GG objects have to be broadcast and stored in the WB history? How can this be done with the least intrusion into the GG source code? Development of multi-user GeoGebra? in VMT could follow these steps: • Become familiar with how GeoGebra? and VMT create geometric objects and display them. • Combine the GeoGebra? and VMT code for displaying geometric objects so that an object created in one client will also be displayed in another client. • Add multi-user commands for creating points, lines circles and the other elements of GeoGebra?, maintaining object dependencies. • Add multi-user commands for moving, re-sizing, rotating and deleting GeoGebra? objects. This may include the following classes for a GeoGebra? object X: XStuff (description, size, location, content), XView (its view), XEditor (an editor), XTool (a button), XCreateManipulator? (a mouse handler), ChangeXCommand? (a change command).

• Ensure that GeoGebra? objects appear in the VMT history. • Ensure that GeoGebra? objects can be referenced from the chat. • Complete multi-user implementation of all GeoGebra? functionality. • Check modified VMT code and GeoGebra? code into the repository. • Create a GeoGebra? tab in VMT. The definition of a VMT Topic should be able to specify the display of this tab. • Document modifications to VMT code and GeoGebra? code in the repository, to facilitate integration of future versions of GeoGebra?. • Provide support for importing standard JavaScript? API files of GeoGebra? drawings. • Provide support for exporting drawings from the GeoGebra? tab in the GeoGebra? standard JavaScript? API format. • Explore Geometers Sketchpad for similarities to GeoGebra?. If feasible, support importing/exporting files for the Java version of GSP. Notes from the meeting with Scott Steketee on May 5th about incorporating GSP functionality: http://mathforum.org/wiki/VMT?MeetingNotes15May2009 .

Teacher Support [Rutgers team; Math Forum team]

• Develop materials for teachers explaining the VMT system, Describing ways to use it in class or as extra credit or as extra-curricular or as home schooling or as teacher professional development. • Develop sets of Topics for GeoGebra?, patterns, permutations, etc. • Develop ways to integrate VMT with other Math Forum services: PoW?, Dr Math, Teacher2Teacher, etc.

Clean up of Login and Lobby Code in Repository [Murat]

• Check that all the latest Lobby Code is included in the new repository. • Clean up the Lobby code: remove files that were never completed or are no longer used. Perhaps improve the structure of the source code files. Provide some in-line documentation on what the different files do. • Review the login interface. Remove references to FIT. Add references to Math Forum. • Add text about the user being accountable for actions, entry of responsible school contact person, terms and policies for usage of Math Forum software.

Copyrights [Murat]

• Remove all references to IPSI in Germany in the user interface and login procedure. Replace with Math Forum.

Administrative Interface and Support [Murat]

• Define roles of user, mentor, teacher, administrator. • Mentor can: o kick and ban o view activity summary o print log o Change status of a user to Mentor • Teacher can: o do whatever mentor can do o create project, subject, topic, room o register students o Change status of a user to Teacher o print summary of several rooms • list of participants, time room was occupied, lines of chat, activity (chat lines, WB actions) of each user • Administrator can: o Do whatever teacher can do o Create .jno file o View listing of all rooms o Change status of a user to Administrator o Display report of rooms active in last hour/day/week/month/year sorted or filtered by project and last timestamp

VMT Admin Security [Murat]

Kick and Ban • In the 2006 version of VMT, double clicking on a user name triggered the kick and ban mechanism. The owners of the room and admins could decide that. The code that facilitates this interaction between the lobby and the chat application is still present, but the mechanism that triggers the action in the chat application is not included in the tabbed version. Allow mentor to do this from room menu or admin interface Alert Math Forum administrator • The 2006 version had a special feature that allowed a user to send a message to the administrators. The code that transforms the message into an email and sends it to a specific list should be still in the repository, but the tabbed version does not have the button included in the 2006 version. Allow any user to send message to mentors. Invisible room visitors • Allow mentor to log into a room as InvisibleUser? – no awareness messages.

Tabs [Kofi]

• Allow selection of tabs, tab names and tab contents when a Topic is defined. • Define a GeoGebra? tab. • Make sure + button in client allows adding GeoGebra? tab. • Pass name of CC room to CC so it will be displayed instead of the Channel number in the window title and in reports. • The Lobo browser supports more formatting than the ConcertChat browser and therefore should probably be used for the Topic, Help and Wiki tabs. It needs to be used for the Wiki to support login forms. Referencing is probably not so important for the Topic and Help tabs and the enhanced support will help to make nicer topic and help pages. • It will not be possible to support referencing and CC history in a browser other than the ConcertChat Browser. Instead, we should enhance the social awareness features so that messages are sent through the server each time a user opens a different tab and each time a user goes to a new URL in a browser. The name of the user's currently open tab should also be displayed next to the user's name in the top right-hand list of current users. By sending these messages, this information will be available for printing in the log transcripts.

Menu System [Kofi]

• Create a menu system, based largely on the whiteboard and chat icon functionality (see http://mathforum.org/wiki/VMT?RoomsDev6 ) • Include some new features, such as archiving chats to .JNO and .XLS files. • Associate some menu items with certain user roles (e.g., admin, mentor). • Define a menu for each tab (including the new GeoGebra? tab), which only appears when the respective tab is selected.

Copy/Paste? Text between Chat, Wiki, Tab Textboxes [Kofi]

• In the existing system you need to press ALT as you select text by dragging the mouse. Then you need to do CTRL-C (without releasing ALT) to copy that text to the clipboard. This is overly cumbersome and makes it difficult for users to reuse the content already in chat as they are summarizing their work. • Implement Copy/Cut?/Paste? options in menu. These should allow copying text (including MathML?) between chat postings, whiteboard textboxes and the wiki.

User Sign-in to Wiki [Kofi]

• Pass username and password to ConcertChat and log user into Wiki with own name so the user can edit the wiki under own name.

System Release [Kofi]

• Integrate changes posted to the repository into a build and run periodic releases of VMT development system on a Math Forum test server. Have multiple developers test it for basic and revised functionality.

September through December

Group Formation

• Re-implement public and private room structure, so a teacher can assign students to rooms and someone can invite their buddies to a room. • Institute a sign-up system for students to register for up-coming events in rooms. • Support messaging and email in the Lobby for arranging meetings. • An announcement section displayed on the profile page of targeted users (e.g., like the wall in Facebook) can be used to support sign-up.

Locking for Editing Whiteboard Objects

• Overlapping textbox editing occurs when users A and B start editing an existing textbox on the whiteboard at the same time. The system only reflects the changes made by the person who commits his/her changes last. This erases the changes made by the other user. Possible solution: implement a transaction protocol that locks the textbox. • Similarly, lock WB objects and GG objects when they are being modified by a user.

Grayed-out Whiteboard Controls

• When a user's whiteboard scrollbar points to a previous state, the user cannot take any action in the WB. This can be initiated by dragging the scrollbar or by clicking on small boxes that display whiteboard actions in the chat stream. Possible solution: make it visually evident that the user is looking at a prior state of the whiteboard (e.g. dim the whiteboard, show watermarked timestamps in a visible way)

Keeping Track of Actions Across Tabs

• Post an event to the ConcertChat history each time a user selects a tab. Announce this in the chat stream (e.g., username, timestamp, “username is viewing the GeoGebra? tab”). • Post an event to the ConcertChat history each time a user selects a URL in a browser tab. Announce this in the chat stream (e.g., username, timestamp, “username is viewing the URL http://mathforum.org in the Browser tab”). • If a user makes a reference from a chat message to a tab different from the one you are currently viewing, then you will see a broken arrow attached to that message. You will also see a green screen name briefly appearing under the relevant tab. The broken arrow gives the impression that there is a bug in the tool. We may consider making the arrow point at the tab itself (which may not be that easy though since the window size allocated to the chat application can be different at each terminal). • We should display what tab each user is viewing in the list of current users in the room (displayed on the top right corner of the room)

VMT Chat to VMT Wiki

• Support for transferring the contents of the summary tab to the wiki page reserved for that room. Simplest way: Implement a button that would allow user to save a snapshot of the summary tab in jpeg or gif mode. This will at least give the user the chance to upload an image to the wiki without the need to reconstruct it with MS Paint. Automated approach: implement a servlet that would communicate a screen shot of the summary tab and the text included in each textbox to the wiki. The wiki side then can post the image and the text on the room's wiki page. Exploit the shared browser: investigate if the team can compose and monitor their wiki summaries by using the browser tab. They will still need some support to copy/paste what they drew and formulated in the chat room to the wiki page.

VMT Whiteboard Table

• Add Table object with rows and columns. Can add row, add column, edit each grid square. • [JSpreadsheet] A simple, open-source, java-based spreadsheet tool that we may consider porting to VMT – but must be made multi-user.

VMT Lobby

Profile • Improved profiles for personalized access to content (e.g. list of recently joined/favorite rooms, projects I am involved with) Buddy list • Support buddy lists in the Lobby for inviting friends to rooms. Mentors • Support for monitoring activities within their projects • Support for defining the order in which topics and rooms should be displayed under a project • Support for batch creation of rooms (e,g. create 5 rooms under this topic with a generic name Room 1,2,3,4) • Gather basic descriptive statistics about sessions under a given project • Inform students about their upcoming sessions - a little announcement with a link to the room can be posted on each user's profile to help them orient themselves Administrators and Teachers • Monitor activity in the whole system. Active rooms and alerts should be flagged so that the admin can locate them easily. • Ability to shut down rooms, suspend users, change their user accounts (this is available, but it is a flat list. we should organize this by letters for easy browsing) • Fix the html transcriber included in the existing admin interface (this can be used to get a quick peek at a room without entering it)

VMT Replayer

• Make Replayer compatible with latest version of Java. Have the user download of the Replayer check that the user has all the required software versions. Have the user download of the Replayer check for revisions to the Replayer • Recompile Replayer including GeoGebra? code so that GeoGebra? tab can be replayed. • Host different versions -- to support older sessions • Make sure that the Replayer can work offline once it has been downloaded (to eliminate the need to be online to make it work; JNLP protocol supports this possibility). • Incorporate transcriber (to allow researchers save a jno as html, csv) • Ability to select date and interval for transcription production? • Gather basic descriptive statistics? • Quick tutorial (highlight main features, like step through, opening up multiple rooms, saving screen shots) • Look into bugs -- message with a reference freezes at the bottom of the chat window sometimes, there is probably something about that reference • Check if shared tabs are recorded adequately (e.g. changes on the shared browsers)


• Define an Open Source statement for source code files. GeoGebra? files require Open Source statements. GeoGebra? language files require a special agreement.


• Review all public web pages about VMT and revise/consolidate them. • Revise the user Help pages to reflect the latest release of the system.

January through March

Further Software Maintenance Support

• Institute a unit testing system. • Institute a bug tracking system. • Release a version of the repository to SourceForge? for other developers.

System Release

Run periodic releases of VMT development system on a Math Forum test server. Have multiple developers test it for basic and revised functionality.
Release a new version of VMT for production at some point.

Other Ideas

Note: the page we put together last year also includes relevant information: Personas, Scenarios and Issues for VMT 2008: http://mathforum.org/wiki/VMT?VMT2DevelopmentPlan

HomePage | RecentChanges | Index | Preferences | Upload
This page is read-only | View other revisions
Last edited August 19, 2009 1:50 pm by Gerry (diff)