Developer Manual SEB Windows
This manual is providing information about getting recent versions of the SEB sources, linking the components and how to compile and debug SEB.
Architecture
SEB consists of three components: a kiosk-application, a portable firefox with the seb-plugin and extensions to divers learning-management-systems (LMS).
Kiosk application:
- launches SEB
- opens an own window-desktop
- catches system-commands (i.e. shortcuts like CTRL-ALT-DELETE, right-mouse-clicks).
- configurable: SebStarter.ini, MsgHook.ini
- possbility to admit other external applications
Portable Firefox or XULRunner with SEB plugin:
- fullscreen mode
- disables menus, navigation- and statusbar
- connect between SEB and test
Extensions to LMS:
- secure exams, quizzes
- disable the navigation to other resources
Checkout Source Code
Create a local workspace directory for the source code and checkout the source code into your workspace (i.e. C:/workspace). You can use Tortoise svn client (http://tortoisesvn.tigris.org/), right-click your local workspace directory and choose "svn checkout". The svn-repository is located at https://seb.svn.sourceforge.net/svnroot/seb.
To checkout the source code, you don't need an account. If you want to contribute to SEB and checkin your code, you need to have a sourceforge account. Please mail your sourceforge account ID to the project administrator, so he can add you to the project. You can find the latest source code in the /trunk directory of the repository, the tagged source code (1.0, 1.1, ....) is located in the /tags directory.
SEB consists of several components (see Architecture), that are stored in different places in the repository:
- SEB Client: https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/
SebWindowsPackage/SebClient
(The SEB Client contains the kiosk application /SebStarter in conjunction with /MsgHook, as well as the browser components /xul_seb and /xulrunner) - SEB Windows Service: https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/
SebWindowsPackage/SebWindowsService - SEB Windows Setup Project: https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/
SebWindowsPackage/SebWindowsPackageSetup - Firefox-extension: https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/FirefoxExtension
- Ilias-extension: https://seb.svn.sourceforge.net/svnroot/seb/trunk/ilias
- Moodle-extension: https://seb.svn.sourceforge.net/svnroot/seb/trunk/moodle
After checking out you should have several files and folders in your workspace.
Source for SEB Client
1. MS Visual Studio solution
The SEB Client is organized in a MS visual studio solution (free edition: Microsoft visual studio c++ express edition, alternatively you can also use another IDE). In the source code (https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/SebWindowsPackage/SebClient) you can find the solution-file for the kiosk application (SebClient.sln, in the root directory). The solution contains 2 MS visual studio projects SebStarter and MsgHook. The project SebStarter is responsible for launching the safe browser, opening an own window-desktop and admitting other external applications. MsgHook catches system-commands.
Below is an illustration of the directory structure and the most important files.
SebWindowsPackage/
SebClient/
MsgHook/
MsgHook.cpp
MsgHook.vcproj
SebStarter/
SebStarter.cpp
SebStarter.vcproj
MsgHook.ini
SebStarter.ini
SebClient.sln
SebStarter.vcproj and MsgHook.vcproj are the MS visual studio project-files. SebStarter.cpp and MsgHook.cpp contain the c++/win32api source code. SebStarter.ini and MsgHook.ini are the configuration files.
2. Build the solution
Open SebClient.sln in MS visual studio. You can compile and link the source code by selecting "Build" > "Build solution" in debug- or release-mode. A new directory Release respectively Debug is created in the workspace with the files SebStarter.exe and MsgHook.dll.
Below is the directory Release with its content:
SebWindowsPackage/
SebClient/
Release/
MsgHook.dll
SebStarter.exe
3. Run and debug
To run or debug the application, you have to assure that the configuration files SebStarter.ini and MsgHook.ini lie in the C:/workspace/SebWindowsPackage/SebClient directory (as should be the case if you checked out the SEB from the SVN repository). As said abouve, the SEB extension for XULRunner is included in the /SebClient directory.
That's how your Release directory looks like in the end:
SebWindowsPackage/
SebClient/
Release/
MsgHook.dll
SebStarter.exe
Source for Firefox Extension
You can make changes to the SEB extension of the XULRunner browser component.
1. Close firefox if it is running
2. Copy the source code to the firefox-extension directory
You can get the code at https://seb.svn.sourceforge.net/svnroot/seb/trunk/win/FirefoxExtension. Copy the {c808Bd5a-5864-11db-8373-b622a1ef5492} directory to Mozilla Firefox/extensions or C:/workspace/Release/SebFirefox(see Source for SEB kiosk application).
3. Start firefox
Here is an illustration of the resulting structure with the most important files:
SebWindowsPackage/SebClient/xul_seb/
chrome/
content/
css/
images/
js/
browser.js
seb.js
load.xul
seb.xul
locale/
defaults/
preferences/
lock_prefs.js
prefs.js
application.ini
Source for LMS Extensions
In recent versions of Ilias and Moodle the extensions are no longer required, the connectivity to SEB is already integrated in these LMS.
For older versions of Ilias
You can get the source code for the extension at https://seb.svn.sourceforge.net/svnroot/seb/trunk/ilias.
The extension is a new skin for ilias (written in php), that disables all navigation elements.
For older versions of Moodle
You can get the source code for the extension at https://seb.svn.sourceforge.net/svnroot/seb/trunk/moodle.
The extension is a patch for moodle (written in php), that disables all navigation elements.
