Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Introduction

From the README:

The Rutgers WebCT converter moves WebCT courses into Sakai.
It tries to automate the process as much as possible. It makes
a number of assumptions about the WebCT and Sakai environments.
I'm afraid that it may not be very easy to use at other
institutions. However the Samigo and Melete converters can
be used on their own, and should work anywhere, with just
changes to configuration information.

They are in subdirectories webct2samigo and webct2melete. There
are README files in the subdirectories explaining how to use
the programs.

This JSP does three things:

  • moves a complete copy of the WebCT files (my_files)
    My-Files) into resources, with the same folder structure. HTML
    files are checked and URLs adjusted where needed
  • moves the question bank for tests and quizzes into
    Samigo as a pool and a demo test that uses all the
    questions. (If there are more than 100 questions, it
    generates multiple demo tests. We've had problems
    displaying tests with 1000 questions in them.)
    I do not move individual tests, just the
    whole bank. I look carefully to see if the tests
    refer to images or other resources, and move them
    into Sakai's Resources, into a special folder named
    "protected". At Rutgers, students can retrieve items
    from there, but can't get a listing of it. The Sakai
    development team has chosen not to accept that patch.
    It's pretty much essential, since otherwise students
    will be able to browse the images before taking the test.

Note that in general images used in tests will appear

...

in two places: in protected, from the Samigo import

...

code, and in their normal location in Resources,

...

because we move all files. If they aren't used anywhere

...

else, you'll probably want to remove the copy outside

...

of protected.

  • converts content into a form that can be used by
    Melete. I haven't managed to get Melete to load this
    from the JSP. So you'll have to download a ZIP file
    and then import it into Melete. This code depends
    upon a modification to Melete to put certain types
    of resources. This should be in the next release of
    Melete.

Contacts

  • Charles Hedrick (hedrick at rutgers.edu)

Current State and Status

Documentation and Source Code

Code

Code Block

svn export https://source.sakaiproject.org/contrib/rutgers/webctconversion

Input

Output

Dependencies

WebCT:

  •  

Sakai:

Installation Instructions

Installation Instructions

From the README:

The Rutgers WebCT converter goes into webapps/ROOT. I'm giving you all the files. They can just be put in the same locations.

The driver program is webct.jsp, which (obviously) is a JSP. In order for JSPs to work as part of Sakai, you must replace the filter and filter mapping in ROOT/WEB-INF/web.xml with

Code Block

<filter>
        <filter-name>sakai.request</filter-name>
        <filter-class>org.sakaiproject.util.RequestFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>sakai.request</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

That causes all access to go through Sakai's request filter, which establishes a Sakai session.

webct.jsp runs two separate converter programs, in the subdirectories webct2samigo and webct2melete. These process output for Samigo and Melete, respectively. It was easier to debug with these as separate processes. Also, it's not clear how many institutions can use webct.jsp. But I think many will be able to use webct2samigo and webct2melete, either separately by hand, or creating their own scripts.

Note that webct2melete depends upon some fixes to Melete. They haven't been released yet, but should be part of Melete 2.3m2 It may work without them, but certain types of data won't load properly.

This code assumes that you have mounted your WebCT server via NFS. That avoids the need to retrieve the exported files. I can just leave them in a directory on the WebCT server. Also, the programs sometimes need to access files on WebCT that are not included in the export archive.

If you can't mount your WebCT system, you could make a copy of .../webct/users and .../webct/webct/courses and put the copies on the sakai system where you are running the converter. However you'll also have to arrange to get the results of the Webct converter over to your sakai system. webct.jsp ssh's the command to webct, but assumes it can access the results over NFS. There are notes at the beginning of webct.jsp that describe what you'd do if you can't mount the server. You'd have to follow the ssh command by an scp command to retrive the results. Either do scp -r to bring the whole directory, or produce a ZIP file, bring it over and unpack it.

Note that the jsp and the two Java files have parameters at the beginning that you will have to adjust. Things like the hostname of the webct server, and specific locations of things. They are carefully commented.

Unfortunately the jsp has one big feature that probably isn't portable. It needs to find a list of all WebCT courses for a given user. I'm sure there's a way to get it from WebCT, but I can't find it. So I use what I know about the way Rutgers names WebCT courses. We name them ending in _NETID. I've added // RUTGERS at all places in the code that depend upon this. If you don't have a
similar convention, I'm not sure what to say.

Both of the Java programs look at the current directory to figure out the name of WebCT course. This is almost certainly a bad idea. I should pass that as an argument. At any rate, we assume the current directory is one produced by WebCT's IMS export function. Names look like Fal2006_01512104_jwr_COURSE_0617653 . The _COURSE_nnnnn is tacked on by export, so Fal2006_01512104_jwr is the course name. Feel free to fix the code to accept the course name as an argument. It's right at the start of "main" in both java files. You could replace the first about 10 lines of code with something that sets "coursename" to one of the arguments.

Execution Instructions

Examples

...

Open Issues and Enhancement Requests

...

  •