Foundation Schema

The core of the site is based on these foundation classes.

  • a User is an authenticated person, with a special user named Guest User that represents someone or something that is accessing the site that has not authenticated
  • Content is an abstract class of a piece of web site content
  • Transaction a description of an activity that creates, modifies, or deletes some content
    • transactions are not generated for read activity
    • transactions have a function identifier that describes the activity such as postArticle
    • each transaction has a timestamp and a reference to the user that initiated the activity, along with a reference to their session

To help organize and manage content, there are these additional classes.

  • Group is a collection of users
  • Role is a set of transaction type identifiers that describe behaviors, rights, and obligations of a user with respect to the users participation in a group
  • Notifications is a collection of short messages regarding site activity
    • new question or answer
    • files that are uploaded
    • tasks that are created
    • etc.
  • Session maintains session information such as the user, when the session was initiated, and other tracking information like the browser

Forum

A Forum is a collection of articles like a news site, or the first email message in a thread for Yahoo Groups, or an initial share on Google+. Forums are used in three different ways in the site, but with very similar presentation.

In the News Forum the articles are similar to a news site or blog, without a public comment section. In the future there may be a way for comments to be made available to the members of the News Group, provided there is a trivially simple way to delete spam comments.

In the Question and Answer Forum the articles are considered questions, and comments are considered proposed answers. In the future there may be a way to mark an answer as “accepted”.

In the Group Forum where the content is only visible to members of the group, the content has no special designation.

  • a Forum is a collection of articles
  • an Article is a message in a forum
  • a Comment is a text message following up on an article
  • a Tag is a label that is used to group similar articles together, commonly called a hash tag from its appearance with an octothorp prefix

Document Repository

A Repository is a collection of documents which are shared between members of a group. There is a special Guest Repository which contains documents that are available to the Guest User, which is the general public.

  • a Document is an individual file such as Word, Excel, or PDF. A document may be current or obsolete, where obsolete documents have a reference to the next latest version and are excluded from the archive
  • a Folder is a sub-collection of documents
  • an Archive is a virtual zipped collection of current documents
    • the archive is a quick and easy way to download all of the current documents in the repository in a structure that matches the folder structure.

In the future there will be a way to map repository content to ownCloud to make it easier to mirror and access from desktop, Android, and iOS users.

Wiki

Every group gets a private Wiki with a collection of wiki pages. Wiki text formatting is used for all text content on the site, including forum articles, comments, and task descriptions. The current plan is to use Creole or a close derivative.

  • a Wiki is a collection of columns.
  • a WikiPage is a page of wiki text. It can refer to other wiki pages, documents in a repository, or general hyperlinks.

Task Board

Every group gets a private TaskBoard with a collection of tasks. Tasks are assigned to group members and arranged in columns. Users have their own personal board which is the combined view of all of the tasks that have been assigned to them in their groups.

  • a TaskBoard is a collection of columns.
  • a Column is a collection of tasks that represent a task state such as ToDo, Doing, or Done.
    • each group cooperatively decides the number and titles of columns
  • a Task is a description of some activity.