===================================
 Pangloss Functional Specification
===================================

Author:	Steve Purkis
Date:	08/04/2003



1 Project Overview
==================

	This document outlines the functional requirements of Pangloss,
 	an open source multilingual terminology management system.


	Pangloss will allow users to search through and manage a set of
	'keywords' -- terms common to an particular industry -- and their
	translations in various user-defined languages.


   1.1 System Roles
   ----------------

	Pangloss will have 4 different types of users:

	    Generic User
		These users have limited access to the site in that
		they cannot modify any content.

	    Translator
		These users may submit & modify keyword translations.

	    Proofreader
		These users may accept/reject keyword translations.

	    Administrator
		These users may create, remove, or modify user
		accounts, languages and keywords.


	General access may be restricted to a predefined list of users.


   1.2 Translations
   ----------------

	For each keyword, there may be an unlimited number of 
	translations in any given target language.

	Keyword translations will have a status associated with them:
	   o Approved
	   o Rejected
	   o Pending


   1.3 Generating Glossaries
   -------------------------

	The primary function of Pangloss is to allow users to generate
	and edit glossaries.  There are 3 ways of generating a glossary:

	   o Navigation (described below)
	   o Searching the keywords
	   o Submitting a URL


	Navigation of the keywords will be multi-faceted.  This means 
	that the user will be able to browse by selecting any 
	combination of:

	   o source language 
	   o target language
	   o date range
	   o translator name
	   o status


2 Use Cases
===========

	For any given request, Pangloss will first check if the user 
	has sufficient privileges before performing any actions.  If 
	the user does not have permission and error screen will be
	displayed.

	As such, it makes sense to break down Pangloss use cases by 
	user type:


   2.1 All Users
   -------------

	The following use cases are available to all Pangloss users:

	2.1.1 Browse keywords & translations
	------------------------------------

	Primary scenario.
	   1. User selects browse keywords option on a Pangloss page
	   2. Pangloss displays available browsing options
	   3. User selects one or more filters of the style:
		a. source language 
		b. target language
		c. translator name(s)
		d. date range
		e. keyword status
	   4. Pangloss displays resulting glossary, and allows user
	      to refine their selected options as in (3)


	2.1.2 Search keywords & translations
	------------------------------------

	Primary scenario.
	   1. User selects search keywords option on a Pangloss page
	   2. User enters text to search by
	   3. Pangloss displays resulting glossary and allows user
	      to refine their selected options as in Browse keywords
	      and translations.


	2.1.3 Generate glossary for a webpage
	-------------------------------------

	Primary scenario.
	   4. User selects generate glossary option on a Pangloss page
	   5. User enters the URL of a web page
	   6. Pangloss displays a glossary containing keywords found
	      on the web page.


	2.1.4 Login
	-----------

	Primary scenario:
	   1. User selects login, or tries to perform an action that
	      requires privileges they do not have.
	   2. Pangloss a login screen
	   3. User enters:
		a. username
		b. password
	   4. Pangloss verifies login and allows the user to continue.

	Variations:
	A. Invalid login
	   4.  Pangloss displays an error screen.


   2.2 Translator
   --------------

	The following use cases are only available to Translators.

	2.2.1 Submit keyword translation
	--------------------------------

	Primary scenario:
	   1. Translator browses keywords and selects a specific keyword.
	   2. Translator enters a translation for the keyword in a
	      target language, and selects submit translation.
	   3. Pangloss updates its list of translations for the keyword.


   2.3 Proofreader
   ---------------

	The following use cases are only available to Proofreaders.

	2.3.1 Modify keyword translation status
	---------------------------------------

	Primary scenario:
	1. Proofreader browses keywords and selects 'Update status'
	   of a specific keyword translation.
	2. Pangloss displays a list of status options.
	3. Proofreader selects new status (and optional comment).
	4. Pangloss updates status.


   2.4 Administrator
   -----------------

	The following use cases are only available to Administrator users.

	2.4.1 Administer users
	----------------------

	Primary scenario:
	   1. Administrator selects administer users
	   2. Pangloss displays list of users and administration
	      options available:
	   3. Administrator selects an option
	   4. Pangloss displays the result of the action

	Variations:
	A. Add new user
	   3. Administrator selects Add new user and enters user
	      details, including:
		a. type of user (translator / proofreader / administrator)
		b. target languages allowed
	   4. Pangloss adds user (if possible) and returns to (2)

	B. Delete user
	   3. Administrator selects Delete user
	   4. Pangloss marks the selected user as deleted (preserving
	      the account and associated data) and returns to (2)

	C. Edit user
	   3. Administrator selects a user and modifies their details
	   4. Pangloss updates the user and returns to (2)


	2.4.2 Administer languages
	--------------------------

	Primary scenario:
	   1. Administrator selects Administer languages
	   2. Pangloss displays list of languages available.
	   3. Administrator selects an option
	   4. Pangloss displays the result of the action

	Variations:
	A. Add new language
	   3. Administrator selects Add new language and enters:
		a. language full name
		b. ISO code
	   4. Pangloss adds language (if possible) and returns to (2)

	B. Delete language
	   3. Administrator selects Delete language
	   4. Pangloss deletes the selected language (and all
	      dependencies?) and returns to (2)

	C. Edit language
	   3. Administrator selects a language and modifies its details
	   4. Pangloss updates the language and returns to (2)


	2.4.3 Administer keywords
	-------------------------

	Primary scenario:
	   1. Administrator selects Administer keywords
	   2. Pangloss displays list of keywords available.
	   3. Administrator selects an option
	   4. Pangloss displays the result of the action

	Variations:
	A. Add new keyword
	   3. Administrator selects Add new keyword and enters:
		a. keyword description
		b. keyword
		c. language 
	   4. Pangloss adds user (if possible) and returns to (2)

	B. Delete keyword
	   3. Administrator selects Delete keyword
	   4. Pangloss deletes the selected keyword (and all
	      dependencies?) and returns to (2)

	C. Edit keyword
	   3. Administrator selects a keyword and modifies its details
	   4. Pangloss updates the keyword and returns to (2)


	2.4.4 Delete keyword translation
	--------------------------------

	Primary scenario:
	   5. Administrator browses to a specific keyword translation
	      and selects Delete.
	   6. Pangloss deletes the keyword.


__
EOF