Index: openacs-4/packages/dotlrndoc/www/doc/architecture-overview.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrndoc/www/doc/architecture-overview.adp,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/dotlrndoc/www/doc/architecture-overview.adp 24 Oct 2001 23:27:22 -0000 1.2
+++ openacs-4/packages/dotlrndoc/www/doc/architecture-overview.adp 29 Mar 2002 17:21:56 -0000 1.3
@@ -15,211 +15,174 @@
The dotLRN architecture attempts to define a framework within which
learning communities develop. A learning community may take many
-different forms, but remains the crux of the architecture.
+different forms but remains the crux of the architecture.
-
Learning Community
+dotLRN Community
-A Learning Community is architected as a series of
+A dotLRN Community is architected as a series of
OpenACS components, with a heavy use of the subsite
concept. One community is represented by:
-- a group: this will serve to define membership
-and roles within the learning community. These groups are not
-necessarily all in the same group type (well, they are all ROOTED in
-the same group type, dotlrn_community).
-
- a site node: this will serve to define a
+
- an OpenACS group: this serves to define membership
+and roles within the learning community.
+
- a site node: this serves to define a
consistent URL for the learning community, and to segment away each
communities from one another. An example is /dotlrn/alumni-1998.
- an instance of the dotLRN Community Manager
-package: this will serve to display community-specific data
+package: this serves to display community-specific data
in a way that is clearly segmented away from the other learning
communities using the acs-subsite constructs.
-Class Instances & Clubs
+OpenACS Group
+The core dotLRN group type is dotlrn_community. This group
+type defines some basic attributes that all communities have:
+
+- a short name: a simple name with no spaces, no special
+characters, usually all lowercase. e.g. finance-101
+
- a pretty name: a name that is used in pretty
+presentation. e.g. Finance 101
+
- start and end dates: for communities that have certain
+validity periods, a start date and end date.
+
+
There are two different types of learning communities in the basic
dotLRN release: class instances and
-communities (clubs). Both have the same functional
-capabilities but have different attributes and roles for their
-respective members.
+clubs. While Clubs need no additional attributes,
+Class Instances require information concerning the Term and Year of
+the Class Instance.
-Class Instances
-Class Instances are related to a particular class, and must specify:
-
-- Year (e.g. 2002)
-
- Term (e.g. Spring)
-
- Section (e.g. Section B)
-
- Start Date
-
- End Date
-
+Site Node
-The fist three parameters may be stored as separate items, all in one,
-or combined in some way. The current architectural direction is to
-separate Year and to group Term and Section, but this may change. In
-terms of the global architecture, this isn't very important.
+In dotLRN, a community is mounted only at one particular node. In the
+future, if communities end up being multi-mounted, there will have to
+remain a canonical location for the community in order to ensure
+maximal modularity - specifically the ability to point to a
+community's URL using only the community_id as a starting
+point.
-
+
Instance of dotLRN Community Manager
-Since all class instances have a common basic set of parameters, the
-class instance groups should all be a single core group type, called
-dotlrn_class. The dotlrn_class group type defines the
-attributes above (year, term, section). dotlrn_class is a
-group type that subtypes dotlrn_community.
+The core dotLRN OpenACS package is called dotlrn
+(surprisingly enough). This package is meant to be remounted to handle
+community types and specific communities. A package_id
+corresponds to each community.
-In addition, in order to group class instances by the class they refer
-to, the dotlrn_class group type is subtyped into further group
-types, where one class is itself a group type. For example,
-6.001 is a group type, whose parent group type is
-dotlrn_class. Then, 6.001 is the group type that all
-instances of 6.001 belong to. 6.001 - Spring 2002, Section B
-is a group of group type 6.001. This architecture allows for:
+The group types for these two dotLRN Community Types are
+dotlrn_class_instance and dotlrn_club.
-
-- class-specific attributes in addition to the generic set,
-
- relating different class instances to a single class,
-
- reusing existing OpenACS 4 concepts of group memberships and permissions.
-
+Use of NPA
-Communities (Clubs)
+dotLRN makes heavy use of the New Portal Architecture.
-Clubs are fairly generic Learning Communities, with no specific
-attributes. Clubs are timeless, in that they don't start and end on
-certain dates. Membership lists evolve, but the clubs remain unique,
-without instances.
+
+Each full-access user has a personal portal where all data from all
+communities is centralized in one place. This is called the dotLRN
+User Portal.
+
-Thus, unlike class instances, the group type structure for clubs can
-be much simplified. A root group type, called dotlrn_club can
-encompass all club groups without any additional level of group typing.
+Each community has a non-member portal which displays information
+to those browsing the system and wanting to find out more about a
+community before joining it. This is called the dotLRN Community
+Non-Member Portal.
+
-
dotLRN Packages
+Each community also has an administrative portal which centralizes all
+administrative functionality for that community. This is called the
+dotLRN Community Admin Portal.
-Learning communities have various packages of functionality. These
-packages are much like existing OpenACS 4 packages, but with added
-specifications, special callback interfaces, and predictable APIs that
-not every OpenACS 4 package will have.
+
+Finally, each community member has her own dotlrn Community Member
+Portal. The important distinction here is that there is a
+different portal for each member of this community. Thus, if a
+community has 100 members, there are 100 individually managed
+portals. These portals are initially created from the dotLRN
+Community Portal Template that administrators of the community control.
+
+
dotLRN Applets
+
+dotLRN Communities have various packages of functionality. These
+packages (dotLRN applets) are much like existing OpenACS 4
+packages, but with added specifications, special callback interfaces,
+and predictable APIs that not every OpenACS 4 package will have.
+
-Thus, a dotLRN Package is composed of three OpenACS 4
-packages:
+Thus, a dotLRN Applet is composed of three
+pieces that may each be a separate OpenACS package:
-- an OpenACS 4 raw functionality package whose
-dependencies are completely independent of the core dotLRN
-application (e.g. bboard).
-
- an OpenACS 4 portlet, using the New Portal Architecture (NPA), whose
-role is to summarize the information in one portlet
-(e.g. bboard-portlet). This is dependent on the NPA, but not on dotLRN.
-
- an OpenACS 4 package (e.g. bboard-dotlrn), dependent on the core dotLRN
-application, whose role is to wrap the raw OpenACS 4
-functionality in the required dotLRN APIs.
+
- OpenACS raw functionality, to provide discussion
+forum functionality. As much as possible, this shouldn't depend on
+other dotLRN components. (e.g. bboard)
+
+
- OpenACS portlet, using the New Portal Architecture (NPA),
+to provide the ability to display the raw functionality in a portal
+interface. This obviously depends on the the NPA, but should otherwise
+be as independent as possible from dotLRN. (e.g. bboard-portlet)
+
+
- dotLRN functionality hooks, to link the raw functionality
+into the appropriate dotLRN structure. This obviously depends on
+dotLRN, but should be as thin a layer as possible on top of the the
+previous two components. (e.g. dotlrn-bboard).
-The relationship between the NPA and the portlet package are defined
-using ACS Service Contract. This is described in greater detail
-in The Portal Interface (futher down).
+
NPA Interactions
+The relationship between the NPA and the portlet functionality is
+explored in the NPA Architecture Manual.
+
+
dotLRN Applet API
+
The relationship between dotLRN and the specific dotLRN-dependent
-packages (dotlrn-bboard, dotlrn-faq, etc...) is also defined using
+packages (dotlrn-bboard, dotlrn-faq, etc...) is defined using
ACS Service Contract. ACS Service Contract defines a standard
provider/consumer interface with special contract APIs. The dotLRN
system defines the dotLRN Applet Contract, which includes the
following operations:
- GetPrettyName: Obtain a pretty, presentable name for the
applet in question.
-
- AddCommunity: Add the applet to a
-new community. This will most probably entail creating a new package for
+
- AddAppletToCommunity: Add the applet to a
+new community. This will most probably entail instantiating a new package for
this functionality, mounted below the community's main mount point. It
will also involve setting up applet-specific data structures (e.g. a
new forum inside bboard).
-
- RemoveCommunity: Remove the applet from the
+
- RemoveAppletFromCommunity: Remove the applet from the
community. This will entail cleaning up any applet-specific data
structures, removing the mount point and package instance.
-
- AddUser: add a user to the community, and perform any
+
- AddUser: add a user to dotLRN in general. This user has
+not yet joined any community, but may need user-specific functionality
+enabled (a private folder for files, a personal calendar, etc..)
+
- RemoveUser: remove a user from dotLRN in general. This
+cleans up the AddUser operation.
+
- AddUserToCommunity: add a user to the community, and perform any
applet-specific related actions. For applets that are represented via
a portlet (which is often, but not always, the case), this will add
the right portlet to the user's portal page for that community. It
will also add the generic portlet to the user's main, cross-community
workspace.
+
- RemoveUserFromCommunity: remove a user from a community,
+and thus clean up the actions of AddUserToCommunity.
The specifics of creating a dotLRN package are described in the dotLRN Package Creation Guide.
-
The Portal Interface
-dotLRN will present most of its interface in portal form. Each dotLRN
-package will present its information inside a portlet within
-the appropriate portal page.
-
-
-
-The current Portals package is inappropriate for this effort, given
-that there is no clean API for creating portal pages, setting up
-portal pages configuration, and rendering portal pages
-programmatically. Instead, dotLRN will need a much more programmatic
-portal mechanism.
-
-
A Portal Page
-
-The New Portals Architecture (NPA) will feature the
-ability to programmatically create and edit single Portal
-Pages. A single Portal Page will be defined by:
-
-- a layout type (3-columns, 2-columns, etc..)
-
- a set of portlets and their individual configuration information
-
- a set of permissions for viewing the portal page
-
-
-
-
-The dotLRN application will then create, configure, and associate
-individual portal pages with specific users' sections of the
-site. This will allow portal functionality to exist within the dotLRN
-application without handing over all control to the portals package.
-
-
Portlets
-
-The NPA will require portlet packages much like the old portals
-package. Each portlet package is responsible for:
-
-- rendering itself within a portal page
-
- providing a set of editable parameters
-
- linking to all appropriate features in the underlying OpenACS
-package
-
-
-The Per-User Interface
-
-Each user will have a single NPA interface which groups information
-from all dotLRN classes in one page. Given the subsited architecture
-of each class, the per-user interface must be subsite aware, and must
-be able to query information across subsites.
-
-
-
-The per-user interface will use slightly different portlets than the
-community-specific ones, given that those portlets will require
-scanning information across package instances. There is some thought
-that this may be "not so kosher." As long as the cross-package
-information is kept to a minimum, though, it should be just
-fine. We'll make sure to keep associating packages with the
-communities they belong to.
-
-
<%= [dotlrn_footer] %>
Index: openacs-4/packages/dotlrndoc/www/doc/dotlrn-faq.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrndoc/www/doc/dotlrn-faq.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrndoc/www/doc/dotlrn-faq.adp 29 Mar 2002 17:21:56 -0000 1.1
@@ -0,0 +1,162 @@
+<%= [dotlrn_header "dotLRN FAQ"] %>
+
The dotLRN FAQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Q: What is dotLRN?
+
+
+ dotLRN is a full-featured application for rapidly developing web-based learning communities, specifically in the context of Course Management. The dotLRN software relies on
OpenACS v4 and includes data model, application logic, and templates to get you up and running very quickly.
+
Read more at dotLRN.mit.edu
+
+
+
+
+ Q: Is dotLRN usable?
+
+ dotLRN is currently in alpha state. The target audience at this time is mostly early adopters. Note also that no backwards-compatibility will be ensured until a beta version. That said, dotLRN is quite stable as is and can most certainly be used to determine near-term usability in a production environment.
+
+
+ Q: When will dotLRN ship?
+
+ dotLRN beta is planned for May 1st, 2002. dotLRN v1.0 is planned for August 1st, 2002.
+
+
+ Q: How can I contribute?
+
+
+
+
+
+
+ Q: What's the relationship between Sloan and OpenForce?
+ A: Sloan hired OpenForce to develop dotLRN to replace the aging SloanSpace v1.
+
+
+
+ Q: How will OpenForce work with other OpenACS
+ developers?
+
+A: OpenForce will continually provide anonymous CVS access to the dotLRN
+development tree. OpenForce will continue to provide architectural
+direction and goals for dotLRN. Over time, OpenForce will qualify and
+include new developers in the core development process. OpenForce
+expects to lead - but not monopolize - the dotLRN process. OpenForce
+will also provide a repository of dotLRN applications available for
+all to obtain existing dotLRN extensions and provide new ones to the community.
+
+
+
+
+ Q: Will OpenForce develop, support, and/or host
+ dotLRN commercially?
+ A: Absolutely.
+
+ Q: Will OpenForce preclude me from providing
+my own services surrounding dotLRN?
+ A: Absolutely not.
+
+ Q: But Why? Aren't you crazy to throw away
+such clear business opportunity?
+ A: We are not in the business of selling
+packaged closed-source software. We believe that open-source software
+and a strong developer community provides plenty of opportunity for
+numerous commercial services. We intend to stick to the Open-Source
+track 100%. No tricks here.
+
+
+
+
+
+ Q: Is dotLRN a part of the OpenACS project?
+ dotLRN is not part of the OpenACS project, but
+is an OpenACS application. This means that dotLRN will install on a
+vanilla OpenACS without additional modifications and through the
+regular, accepted OpenACS API. While dotLRN developers happen to also
+be core OpenACS developers, the dotLRN team is taking all possible
+measures to ensure that any modification suggested to the OpenACS core
+is approved by other OpenACS developers that do not have a direct
+stake in dotLRN.
+
+
+ Q: Will dotLRN be merged into OpenACS?
+ A: This is a question to be answered by the OpenACS
+community.
+
+
+
+
+
+
+
+
+ Q: What are the terms of use for dotLRN?
+ A: dotLRN is distributed under the GNU General
+Public License v2.
+
+
+
+
+
+ Q: How is dotLRN spelled and pronounced?
+ A: It's sometimes written as .LRN, but
+ the spelling and capitalization dotLRN is
+ preferred. dotLRN is pronounced "daught-learn" We are currently accepting voice applications for the dotLRN MP3 pronounciation file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+ |
+
+
+
+
+
+
+