Suppose that Joe User comes to www.edf.org hoping to learn something about being an environmentalist. He reads an article or two before becoming distracted by another task. Three months later, Joe User returns to www.edf.org to continue his environmentalism education. He can't remember which articles he has read. The home page has been freshened with news so that the links aren't in familiar places. Joe doesn't know what he should read next and, worse, doesn't feel that he is progressing toward any goal.
With this system, Joe can refer to a curriculum bar that is displayed on every page grabbed from www.edf.org. The bar shows a condensed description of the articles that Environmental Defense Fund wants everyone to read, with little checkboxes by the ones that he has read already. As Joe finishes a section, it is clear from referring to the curriculum bar which section to read next.
[ns/server/yourserver/acs/curriculum] EnabledP=1 ; does ad_footer put this in every dynamic page? StickInFooterP=1 ; does ad_serve_html_page put this on every static page? StickInStaticPagesP=1
Everything else is in the following table
We record individual user experiences increate table curriculum ( curriculum_element_id integer primary key, -- 0 is the first element of the course, 8 would be the 9th element_index integer, url varchar(200) not null, very_very_short_name varchar(30) not null, one_line_description varchar(200) not null, full_description varchar(4000) );
You might wonder why we don't use thecreate table user_curriculum_map ( user_id not null references users, curriculum_element_id not null references curriculum, completion_date date default sysdate not null, primary key (user_id, curriculum_element_id) );
user_content_map
table. We have some good reasons: (a) the table only records static
.html page loads, (b) the table is only properly used to record content
viewed on our server whereas a curriculum may include content from
foreign sites.
ad_footer
check for the
publisher's curriculum system settings. A modification to
ad_serve_html_page
in /tcl/ad-html.tcl suffices to make
the bar visible on static pages.
CurriculumProgress
.
This is either a space-separated list of integers (curriculum element IDs) or the token "finished".
By default, the filter ought to be run before every .html, .tcl, or .adp page served, if the curriculum system is enabled.