[Seaside] state of the aubergine

Julian Fitzell julian@beta4.com
Mon, 22 Apr 2002 20:19:04 -0700


Tim Rowledge wrote:
> This is what I'm looking at doing with SeaSide. At the moment I'm trying
> it in Stephen Pair's swikinet stuff as well, but it just dosn't seem to
> work with my mindset. Lots of clever stuff, but somehow it baffles me...
> 
> Anyway the basic requirement is fairly simple seeming - I have to
> present tests consisting of multiple choice questions and record the
> answers.
> 
> The 'teacher' has to be able to choose groups of questions from a pool
> and assemble them into tests. There will also be a pool of pre-built
> tests. Teacher must be able to add new questions, which would be
> 'private'. Teacher must be able to add/remove students to the permitted
> users. Teacher must be able to see the results of all tests for students
> in some reasonable format (a table I suppose) and email the form to
> somewhere for record keeping (CSV type file would be fine and easy).
> Teachers will need login ids that permit them to do al the above.
> 
> Students will need login ids that permit them only to take tests.
> 
> Tests will be either 'practise' or 'graded'. Tests will consist of a
> modest number of questions, typically twenty or so. Practise tests may
> be taken several times by any student and the student will see both
> their grade and the correct answers at the end. Graded tests can only be
> taken once and the student see only their result. Graded tests may have
> a time limit attached - 20 mins, or whatever.  The timing would start
> when the students hits the start-test button for the first question.
> Once the time limit is reached there would be no more questions
> presented and the results would be worked out. If the student finishes
> before any time limit they can hit a finished-test button. 

Timing should be pretty easy.  You can store the start time in the 
session and compare it each time a question is submitted to see if the 
time has elapsed yet.


> Questions will (initially, there are dreams of more sophistication)
> consist of a text explaining the problem and a short (3-5) list of
> possible answers. The neat trick is that the list of answers will be
> re-ordered randomly each time they are presented to avoid students
> remembering "oh, that one was 'b' last time" so some way to remember the
> ordering used is needed. I'm assuming a session related var can do this.

Ordering is non-issue.  If you create a list of radio buttons, you give 
it a Collection of items.  The actual item associated with the selected 
radio button is given to you so you can do a straight comparison.  Or 
even just have a flag in the PossibleAnswer object that indicates 
whether it is correct.  All depends how you implement your data objects 
of course.

> We need to maintain the appearance of many separate areas, one for each
> college/teacher using the service (could be several teachers from each
> college I supose). I don't mind how that is done, but the swikinet DNS
> handler does a good job of making a single server respond to many URLs.
> Obviously there needs to be a nice simple way to add new
> colleges/teachers to the system. I imagine keeping that as the preserve
> of the overall admin person rather than allowing teachers to do it for
> themselves.
> 
> I managed to make a very simple testing demo in ComSwiki several months
> ago and then got lost in swikinet somehow. I think a part of the trouble
> is that it is very focussed on the swiki.net needs and digging out the
> infrastructure is hard work, even with Stephen trying to explain it. Of
> course, part of the problem is that I know a lot about the vm &
> low-level stuff but bugger all about writing applications.
> 
> So, all advice welcomed. I need to get this done _really_ quickly, I'm
> a long way behind on original estimates and things are getting
> desperate. I'll obviously need to know how to deal with permissions,
> logins, cookies, sessions, aaargh! Help Obi-wan WebPerson, you're my
> only hope!
> 
> tim

The most important thing is figuring out how you're storing (database, 
text file, ...) and representing the data (what objects you're using for 
it).  Once you have those objects, most if not all of what you're 
proposing should be relatively easy.  We haven't played with virtual 
hosts or anything in terms of different looks for essentially the same 
site and we haven't done much with permissions or authentication yet 
(only HTTP Basic at the moment) but both should be doable.

I'm heading out the door but Avi may have further suggestions and I'll 
look over it again tomorrow to see if I have any more.  Obviously you 
can keep posting with questions.

Julian

-- 
julian@beta4.com
Beta4 Productions (http://www.beta4.com)