Pyodel: a web2pyable e-learning tool

210 views
Skip to first unread message

Alan Etkin

unread,
May 7, 2012, 12:43:09 PM5/7/12
to web...@googlegroups.com
Since my e-learning customer decided to build his own Moodle application for his teaching needs, and therefore I had that free time to think of something else, I was looking for a web2py tool to provide an enhanced alternative, pluggable, easily maintainable, Pythonic tool for newtworked educational software. So I created an open source project, Pyodel, that already has a working application with some functionality, although it is in a very early development stage.

The project aims to produce a set of e-learning tools for being used as plugin with other web2py apps (such as the current web2py CMS projects) or as a single application (sort of a simple online school integrated system). If enybody wants to be added to it as commiter, please add proposals or any design issues to the project's issues list

Massimo Di Pierro

unread,
May 7, 2012, 1:15:06 PM5/7/12
to web...@googlegroups.com
Could you post some screenshots? Something that would be useful to me (perhaps you have something like this) is a plugin that provides a gradebook with two interfaces: a spreadsheet like interface (perhaps using web2py/gluon/contrib/spreadsheet) and a insert grade form which can be embedded in other pages via ajax or iframe. 

Alan Etkin

unread,
May 7, 2012, 1:47:27 PM5/7/12
to web...@googlegroups.com
Sorry, no screenshots yet, I'll try to post them later.

Project tables (just a few of them):

-course (by some lecturer, start and end)
-work (student task)
-hourglass(timed exam)

Works and hourglasses (performed timed exams) are qualified by a qualified authority (teacher or manager)
Currently there is not such thing as a subject for a course (but I realize It is needed). So, a gradebook with a list of approved courses by subject is not possible yet (of course these are trivial issues)

Anyway, you have pointed me some project tasks that were not in the todo list

I could not translate what an insert grade form is yet, but I'll work on it too :)

Thanks for your feedback

Alan Etkin

unread,
May 8, 2012, 10:59:52 AM5/8/12
to web...@googlegroups.com
Could you post some screenshots?

I have uploaded screenshots here:
http://code.google.com/p/pyodel/wiki/DevelopmentScreenshots

gradebook and insert student qualifications form are listed for implementation (no components available so far)

Alec Taylor

unread,
May 8, 2012, 11:12:33 AM5/8/12
to web...@googlegroups.com
Nice project concept.

Contact me when you're a little further down the line and I'll create an analytics module for it with some nice AJAX graphs and charts

blye

unread,
Jun 8, 2012, 4:13:49 AM6/8/12
to web...@googlegroups.com
Thank you for this very interesting project
In my thoughts on web2py for ed.
I have a problem of atomicity.(sic)
By this I mean :
Take a Multiple choice set of 10 questions. All models I have seen (so far) essentially store one question per database table row. OK for very small project.
But for large project Very large and unwieldy table.
I am thinking of holding let us say the ten multiple choice questions ( their details etc ) in One field in a row.( Maybe a Blob or a ref to a pickle).
So a Set of questions ( One Exercise of many is One row of table)

My design challenge. Allow Input into forms as normal. On submit, store input data temporarily without using table.
after Input loop  ( eg 10 questions) , collate all Input data into Blob or Pickle. 
Store this as entry ( or reference ) into relevant field in row.
Then it needs an equivalent unpack so that the questions can be restored and presented through the view. as if a normal table and rows.

This would make a Set the basic atom instead of the question.Much easier down the line, student performance records etc. Scaleability.
I dont know if this is clear ;-)
It is above my web2py skills although I am experimenting.
Thank you for your work. I will add to project's issues list.

spam...@gmail.com

unread,
Jun 8, 2012, 8:58:47 AM6/8/12
to web...@googlegroups.com
El , blye <blye...@gmail.com> escribió:
> Thank you for this very interesting projectIn my thoughts on web2py for ed.

> I have a problem of atomicity.(sic)
> By this I mean :
> Take a Multiple choice set of 10 questions. All models I have seen (so far) essentially store one question per database table row. OK for very small project.
> But for large project Very large and unwieldy table.
> I am thinking of holding let us say the ten multiple choice questions ( their details etc ) in One field in a row.( Maybe a Blob or a ref to a pickle).
> So a Set of questions ( One Exercise of many is One row of table)
>
>
> My design challenge. Allow Input into forms as normal. On submit, store input data temporarily without using table.
> after Input loop  ( eg 10 questions) , collate all Input data into Blob or Pickle. 
> Store this as entry ( or reference ) into relevant field in row.
> Then it needs an equivalent unpack so that the questions can be restored and presented through the view. as if a normal table and rows.
>
>
> This would make a Set the basic atom instead of the question.Much easier down the line, student performance records etc. Scaleability.
> I dont know if this is clear ;-)
> It is above my web2py skills although I am experimenting.
> Thank you for your work. I will add to project's issues list.

Thanks blye. I am not sure I will take this approach for storing exam data. Here is why:
Suppose you want to search text trough it or build queries based in string fields. Blobbing/pickling it in multiple record units would complicate the simple database search feature provided by DAL with table inspection algorithms (with the corresponding server performance issues). Another concern of using it is that Pyodel questions are meant to be not just simple statements, but markmin documents too, so there is also the capability of carrying question related stuff like references, paragraphs, media and other useful information for the exam.

However, we could think of adding simple one record question-answer sets for small and quick tests and have one controller interface handle its data in an exam type basis. Even we could use a quiz syntax for defining them in one text field:

q-1: What happens when you activate the mechanism?
a-1: The cat in the box should be killed
a-2: The cat in the box should not be killed
a-3: Both
a-4: Nothing
c: a-4

q-2
...

Currently, I'm porting the app to a plugin structure, so it can be appended to any web2py application.

blye

unread,
Jun 8, 2012, 10:55:56 AM6/8/12
to web...@googlegroups.com
Looking forward to following it.


On Monday, 7 May 2012 18:43:09 UTC+2, Alan Etkin wrote:
Reply all
Reply to author
Forward
0 new messages