<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_plain.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m10306">
  
  <name>The Connexions Authoring System</name>
 
  <metadata>
  <md:version>2.9</md:version>
  <md:created>2001/08/10</md:created>
  <md:revised>2002/08/19</md:revised>
  <md:authorlist>
      <md:author id="bartmess">
      <md:firstname>Elizabeth</md:firstname>
      
      <md:surname>Bartmess</md:surname>
      <md:email>bartmess@alumni.rice.edu</md:email>
    </md:author>
      <md:author id="jenn">
      <md:firstname>Jenn</md:firstname>
      <md:othername>A.</md:othername>
      <md:surname>Drummond</md:surname>
      <md:email>jenn@rice.edu</md:email>
    </md:author>
      <md:author id="brentmh">
      <md:firstname>Brent</md:firstname>
      <md:othername>Michael</md:othername>
      <md:surname>Hendricks</md:surname>
      <md:email>brentmh@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jenn">
      <md:firstname>Jenn</md:firstname>
      <md:othername>A.</md:othername>
      <md:surname>Drummond</md:surname>
      <md:email>jenn@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="brentmh">
      <md:firstname>Brent</md:firstname>
      <md:othername>Michael</md:othername>
      <md:surname>Hendricks</md:surname>
      <md:email>brentmh@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>authoring system</md:keyword>
    <md:keyword>Connexions</md:keyword>
    <md:keyword>documentation</md:keyword>
    <md:keyword>module</md:keyword>
    <md:keyword>tutorials</md:keyword>
  </md:keywordlist>

  <md:abstract>This module explains the details of the Connexions Authoring system.</md:abstract>
</metadata>

  <content>
    <section id="intro">
      <name>Introduction</name>
      <para id="intro1">
	<link src="http://cnx.rice.edu">The Connexions
	  Project</link>'s authoring system is designed to facilitate
	collaborative editing of educational materials.  This document
	explains some of the details of that system.  The major
	functionality is divided into two main areas:
	<list id="intro2" type="bulleted">
	  <item>Managing Workgroups</item>
	  <item>Managing Modules</item>
	</list>
      </para>
    </section>

    
    <section id="workgroups">
      <name>Managing workgroups</name>
      <para id="workg1">
	<term>Workgroups</term> are a private "scratch area" for
	groups of authors to work on a common set of modules.  This
	allows people working together to see their progress without
	having to make it available to the whole world (although
	workgroups were designed to facilitate multiple authors, an
	individual may want to create a workgroup of only one person,
	and create and edit his or her own modules in that workgroup).
	<note type="Warning">
	  Remember that <emphasis>workgroups are not a replacement for
	    communication between authors</emphasis>.  In particular,
	  workgroups have no control hierarchy, and the creator of the
	  group has no special privileges.  Any member may add or
	  remove members or modules.
	</note>
      </para>

      <para id="workg4">
	To join a group, a current member of the group must add you to
	the group. There is currently no mechanism for requesting
	addition to a group; it is assumed that, for the time being,
	all collaborators have other means of communication with each
	other and can form groups by common consent.  "Leaving" a
	group means you will no longer be a member. For you to become
	a member again, a current member must add you again.  Once
	every member of a group has left the group, the group will be
	deleted.  The last member to leave will be asked to confirm
	this step.
      </para>

      <para id="workg2">
	Each workgroup can have a number of modules that are
	associated with it.  In order to actually edit the module, a
	member of the workgroup needs to <cnxn target="modulecheckoutsubmit" strength="7">checkout</cnxn> the  
	module to the workgroup.  Once it is checked out, any member
	of workgroup who has editing permission may make changes to
	module that module.

	<note>
	  Workgroups are independent of editing privileges; a
	  workgroup is simply a place to list and track modules.  To
	  edit a module you must be a maintainer for that module
	</note>
	
	<note type="warning">
	  A module can be associated with any number of workgroups.
	  This may cause some confusion for the authors if they are
	  not careful.
	</note>
      </para>
    </section>


    <section id="modulecheckoutsubmit">
      <name>Managing modules</name>
      <para id="check1">
	Modules are stored in a robust versioning system called CVS.
	Version tracking is very important to an open-content project,
	because when a change is made to a module, some instructors
	may wish to use the old module and some may wish to use the
	new module.  When collaborating with other others, you may
	also want to compare previous versions.  CVS handles the work
	of keeping all past and current versions simultaneously
	accessible without having to store them separately.
      </para>

      <para id="check2">
	Authors interact with CVS only through the <link src="http://cnx.rice.edu/author">authoring interface</link> to 
	the Connexions <term>module repository</term>.  The repository
	holds and provides access to all of the Connexions project's
	modules.  Common activities to perform on modules include:
	<list type="bulleted" id="moduleedit">
	  <item>
	    Checkout an existing module: this makes a copy of the
	    module in your workgroup.  This copy is local to your
	    workgroup and cannot be seen by anyone who is not a
	    workgroup member.
	    <note>
	      The term 'checkout' is slightly misleading.  It is not
	      like checking out a library book.  You are simply making
	      a copy.  The original is still in the repository, and
	      others may check it out simultaneously.
	    </note>
	  </item>
	  <item>
	    Create a new module: this makes a skeleton module file and
	    adds it to the repository.  It also performs a checkout
	    on the newly created module.
	  </item> 
	  <item>
	    Edit a module: this can include editing the text of the
	    module, changing metadata (like authors and keywords), and
	    adding or removing images, etc.
	  </item>
	  <item>
	    Save your changes: this saves your changes to the
	    workgroup scratch area.  This does
	    <emphasis>not</emphasis> submit your changes back to the
	    repository.
	  </item>
	  <item>
	    Validate the module: this checks to see if your module
	    conforms to document type definition for CNXML.
	  </item> 
	  <item>
	    Submit your changes to the repository: this command is the
	    complement to 'checkout' and is sometimes referred to as
	    'checkin'.  It takes the changes you made to the module in
	    your workgroup and commits them to the central
	    repository.  It will also ask you for a brief message
	    describing the changes you made.  This message is useful
	    for others examining the history of module, particularly
	    when working with other authors.
	  </item>
	</list>
      </para>
    </section>
  </content>
  
</document>
