Spec Sheet (outdated)

This document is VERY fluid, in-process initial spec of the FGA project.
It is pretty much intact from its initial drafting in Berkeley, CA and at this point needs some updating.

Objectives

To build a distribution of Drupal which allows a GA to create, manage, and promote a website for a unique, physical occupation location and also to empower it’s locale members to participate using a Network Of Trust style format.

A generic GA‘s structure and working architectural needs are as follows:
  • Working groups
  • Publication of resolutions
  • Public facing stuff
  • Internal broadcasting conversations
  • Task tracking and reporting
  • Outreach
  1. Permissions to mirror bricks and mortar network of trust
  2. Share info between the sites
  3. Clone off Drupal sites like that (installation profile)
  4. Go, taxonomy, but effective IA…
  5. Classify: how to mark up what happens, separate kinds of posts

Constraints

These sites will purpose to be an extension of the real brick and mortar mandate of the GA, especially in regards to curated content (i.e., unauthenticated users cannot be allowed to post anywhere in the site except where defined).
Secure, protected, or private communication is not the focus of this Drupal distribution.

Desired Features

  1. Non-verified user accounts that anyone can create, but which have limited privileges and can be elevated to one or more levels of privilege by another verified user. Tracking of which user elevated the non-verified user to verified status, and the prevention of ‘downgrading’ any user once they’ve been elevated.
  2. Assignment and tracking of tasks within a specific GA’s members or participants/volunteers.
  3. Display of all adopted Resolutions by date and by __. No deletions.
  4. Resolution proposal creation and status tracking (new,open,tabled,decided). No voting.
  5. Meeting Minutes creation, browsing, storage and archival.
  6. Enforcement of max password age. (encourage people to change it monthly)
  7. Use a “network of trust” model for managing accounts; exactly what model needs to be determined with some careful discussion with the people on the ground.
  8. Ad-hoc groups which are not official groups that can be posted into by anyone, including unverified users.
  9. “Official” groups which are sanctioned by the GA and which only verified users can participate in.

Maybe desired features?

  1. Common tag space so occupy webs can exchange information relevant to audience, visibility, task and context.
  2. Maps
  3. Livestation- video or live feed integration
  4. Event listing or calendar of events at GA/ occupation
  5. promoting content to public facing or inner facing publishing

Roles

  1. Anonymous User (media / reader / observer)
  2. Unverified User (basic account + profile data, but has no content creation or commenting capabilities other than within ad-hoc groups. The question remains as to whether front page content should be allowed to be commented by Unverified users?)
  3. Verified User (Non-verified Occupier who is transmogrified to verified status and can now participate in any and all discussions as well as being eligible to perform one or more content creation tasks) [see options for verification below] Working Group Members are Verified users who have joined a group.
  4. Minutes Manager (GA appointed note taker who can upload and/or curate all posted meeting minutes).
  5. Representatives (one or more spokespersons who represent the various working groups)
  6. GA Facilitator (resolution interpreter)
  7. Site Admin (semi-powerful sitewide capabilities)
  8. Drupal Developer (full-super-cow-powers)

User Stories

“As a [ROLE], I want to do __.” - This is the format of the user stories that compiled create a functional spec for the FGA site.

  1. As a Unverified User or Verified User, I want to create a new ad-hoc working group which any user can join. I realize that I cannot edit or delete an ad-hoc group once it has been created.
  2. As a Site Administrator or GA Facilitator, I want to create (or edit) a new, categorized working group for use by the GA which any verified user can join. I also wish to delete any working group.
  3. As a GA Facilitator, I want to publish the assembly resolutions voted on a certain date.
  4. As GA Facilitator, I want to push certain content to external media organizations.
  5. As a Working Group Member, I wish to edit an action task voted as part of a General Assembly resolution in my group.
  6. As a Working Group Member, I wish to publish a post visible to the members of the Working Group. I do not need to cross-post it to other working groups.
  7. As a Working Group Member, I want to see activity or content from other GAs’ working groups whose purpose mirrors ours.
  8. As a Working Group Representative, I wish to update the status of a task assigned to my working group.
  9. As a Working Group Member, I want to share articles with remote working groups from other GAs.
  10. As a Working Group Representative, I want to promote content from my working group to a more public location on my GA site.
  11. As a Working Group Representative, I want to promote content from my working group into the GA feedosphere.
  12. As a Working Group Representative, I want to see status of tasks everyone has committed to.
  13. As a Verified User, I want to take responsibility for a task, and have all other users be able to see that I’m responsible. I also want to be the only one who is able to remove my responsibility from the task.
  14. As an Authenticated User, I want to embed or link content from other occupation GA sites.
  15. As a GA Facilitator, I want to hide or expose vote counts on resolutions per standards of the GA.
  16. As an Unverified User, I can post a comment to a promoted item.
  17. As an Unverified User, I can participate in group discussion for ad hoc group.
  18. As a Working Group Member, I can post a comment on action items or task within my working group.
  19. As a Working Group Representative, I can edit comment settings on my public posts? [not sure]
  20. As a Working Group Representative, I’d like to be able to post a Livestream to my working group page, and/or have a constant presence on the front page.

Trust verification options

Access should be open to all, but user verification is necessary so that users can assess content validity and quality based on a formal web of trust. Assume that activists are concerned about security but not necessarily aware of how to implement it. A goal should be to offer options based on best practices, and occupy groups can made educated decisions that suit their audience and context. Costs and benefits should be well understood, and you should find other resources (like EFF and riseup.net) who have already done good writing about activist security.
  • User avatars as in OpenAssembly.
  • OpenAssembly is designed to be secured against users trying to manipulate or game the system. How does this work?
  • You upload photos of yourself with other activists. Make sure both faces are visible and recognizable.
  • As more photos of you accumulate, other verified users anonymously and randomly determine if there is a single person in each pair of photos of you.
  • The trust network grows in real life as well as online, and OpenAssembly makes decisions based on verified users!
  • User points based on relationships verified by physical contact with users. Givers of points are anonymized, so amount of points over time is a substitution for identity of verifiers.
  • Users are vouched for by other users, and this network is visible on the site. “User A has been met by User B C and D. User B has been met by User X who is a well known public figure in the local movement.”- Keeping this point on the list, but this has been flagged as having potential legal implications, so this entire section should be thought of and tred lightly on (MB)
    *Considering creating a separate user system such as OPEN ID that could work between several sites if needed.

Content dissemination concepts

Bubble up: a group’s content is promoted to a higher level that is more visible to people who aren’t in the working groups.
Multiple group posting: a piece of content is posted into multiple groups.
Push or broadcast: a piece of content is sent “off site” to people who are not online or not users of the site.
Aggregation: content from occupy sites are shared among other occupy sites via feeds or pubsubhub, etc.