June 11/06

From NVCWiki
Jump to: navigation, search
Note: See discussion by clicking on the word "discussion" above.

RFP For A CNVC Online Partnership Community

June 11, 2006


The Center for Nonviolent Communication (CNVC), an international non-profit 501(c)(3) organization, has a network of people around the world who are interested in Nonviolent Communication. Nonviolent Communication (NVC) is sometimes referred to as compassionate communication. Its purpose is to strengthen our ability to inspire compassion from others and to respond compassionately to others and to ourselves.

We want to overhaul our website and create an online community to support the CNVC network and facilitate connection and collaboration between people interested in NVC. CNVC operates in a partnership paradigm. We want a website that creates community and fosters partnership. Drupal appears to have much of the functionality we are looking for.

We want to install a Drupal prototype website so we can explore Drupal functionality and determine whether or not Drupal will satisfy our functional needs. We have a preference for staying as close as possible to the vanilla installation of Drupal for the prototype installation but we may be ask for functionality that requires custom coding when we get to a live installation.

We have a worldwide audience with a wide variety of browsers in use. Our statistics average around 61% for IE 6 with 29 other browser/versions in use, some really old (Netscape 2, for example) and 15% undetermined (those stats are from a recent 7 day period). And we have a significant Mac audience. We want a design that uses CSS, is not dependent on graphics for navigation (which does not mean it can’t use graphics), degrades gracefully to older browsers, and will work on slow speed modems.

We also want to understand what can be done to tune Drupal for a high volume of hits, such as would be experienced after our founder appears on Oprah’s television show or some other major media event.

Initial Functionality

We want to see what Drupal and/or CiviCRM can provide for the following functionality without custom programming.


  • Use 4 languages to start with: English, French, German and Spanish

Contact Information:

  • A centralized repository for contact information for the CNVC network with the ability to handle international addresses and phone numbers
  • The trainers want a field in their contact information for “other disciplines.” They want to be able to “find” people using those disciplines. For example, find certified trainers who are also trained in Focusing. How could this work?
  • Enable people with certain permissions (such as certified trainers) to be associated with multiple countries/regions so that they can be “found” by people in multiple countries/regions
  • Viewers can find people throughout the network, by country (or proximity), by function (trainers, local NVC supporters, board members, etc.) and then view contact information for them.
There are two parts to this:
  1. we would like the public website (accessible without membership or with guest membership) to display trainers, local NVC supporters and board members with some minimal contact information (to be determined)
  2. having certain permissions would allow the viewer to see full contact information (for example, trainers and staff could see full contact information on anyone including their email address).

Protection from Junk Robots:

  • There is a Drupal module that stops mining efforts of certain kinds of junk robots (I’m not remembering how it was worded). We want our information as protected as possible.


  • Ability of users to add themselves with general permission
  • Ability to assign different levels of access and multiple accesses to the same person (see list of permissions, below)
  • Users access their own profile information and update their contact information
  • Ability for the office to add a new user (member); we have people who ask to be on our mailing list and do not provide an email address and may not have internet access
  • User access to only that information and processes that they have permissions for. We are visualizing a variety of groups within the website, and each group would have public and private data of its own. In addition, there will be general public information to which everyone has access.
  • A certain segment of the website will be publicly viewable but only updated by a specific person or authorized people
  • A certain segment of the website will be available for, say, certified trainers to post information and once posted, only the person who posted it can change it

Other Functionality

  • Donation management, reporting and tracking (as robust as is available)
  • Ability to add/edit content: some content will be “official” documents (not to be modified, like board minutes); some will be from people with permission to post. We will also have content in different languages that we will want available to the general public. Sometimes the same document will be translated into several languages. How can people using different languages find documents in their language? Say they don’t speak/read much English. Is there a document approval process?
  • Affiliation groups (public and private data to the group). These groups can be language groups (e.g., Francophiles) or interest groups (e.g., restorative justice, social change); we will want to be able to add new groups as the need arises
  1. Ability of members to add/edit content within the group based on permissions
  2. Ability to create documents in a shared environment with moderated documents, revision control, ability to collaboratively work on shared documents
  3. Ability to store documents, with access based on permissions
  • Event scheduling and management: addition, editing, viewing with multiple event types, including scheduling trainings, conferences, NVC negotiation/mediation, and consulting services for Marshall (our founder) and other trainers. Show us everything event management has

Would like to be able to assign multiple trainers to events (as teachers) Would like to be able to assign multiple contact people to events

One function we would like to have is for trainers to be able to display their trainings (posted in our database) on their own websites. Like one-entry bookkeeping: they only have to enter their trainings once in our system and they can display on their own websites as well as CNVC’s.

  • Find trainings/events by date, topic, location/proximity, trainer, difficulty level
  • Events calendars (different calendars for different types of events, e.g., trainings, donation events, meetings, conferences, etc.)
  • Document storage/exchange (including revision control and classification)

Can store press releases, press kits, and marketing materials. Also need to manage multi-media documents. Online newsletters, journals, magazines. Trainer reports.

  • Individual and group listserves (by topic, by person, by permissions) meaning that a trainer or affiliation group can have his/her/their own listserve that people can sign up for, and there will also be group listserves, such as Friends of NVC, and the Trainers’ Newsletter.

Note: Friends of NVC and the Trainers’ Newsletter are currently Yahoo Groups; some thought needs to be given to whether or not we want to bring them in-house considering current email issues and the occasional inability to get a cnvc.org email to the recipient

  • Collaborative work spaces, e.g., a place for the board to work that only board members can modify
  • Instant messaging (I’m private, visible to friends, or visible to everyone)
  • Blogging
  • Emailing individual members by members and by the general public (non-members) done safely without giving the email addresses away
  • Emailing segments of users, possibly defined by their permissions


This is a first take on the different kinds of permissions. A person can have multiple permissions. New permissions will be developed along the way as needs arise.

  • Guest Members
  • General Members
  • Trainer Candidates
  • CNVC-Certified Trainers
  • Local NVC Supporters
  • Project Coordinators
  • Organizer
  • CNVC Board (staff)
  • Executive director of the Center (staff)
  • Director of educational services (staff)
  • International project coordinator (staff)
  • IIT administration (staff)
  • CNVC Staff
  • CNVC Office Manager (staff)
  • Scheduler (staff)
  • Webmaster (staff)
  • Affiliation groups (language, region, themes/collaborative interests—social change, professions/avocations—nursing); there would be a separate permission for each group
  • Sociocracy Trainers
  • Trainers of Trainers

Other Possible Functionality

  • Polls and surveys
  • Web casts: we currently use a service that broadcasts a PowerPoint presentation along with voices from speakers who call in by phone. The PPT presentation is not viewable by people using Macs unless they download a pdf of the presentation. We would like a different way to do web casts that works for Macs and PCs.
  • Forums/chat rooms: want for varied topics. For example, empathy rooms (to give/receive empathy), discussion topics; empathy may have a donation associated with it
  • Audio/video storage and viewing/listening
  • Online meeting/conference rooms and scheduling them
  • Content syndication (RSS feeds—in and out)
  • Online store fronts that can deliver either services or goods
  • Travel and scheduling
  • Individual and group calendars
  • E-learning: training classes, live or text based
  • Video conferencing
  • Project management software/tools

Current Programming on cnvc.org

I’m including this information so you can see where we are right now. The functionality does not necessarily transfer over to the new system. For example, maintaining country names was done to allow the native spelling(s) for a country to show next to the English name to make it easier for people in other countries. If the French language module in Drupal, for example, includes country names in French, then this function is unneeded.

The current Center for Nonviolent Communication website is partially database driven. Updates to the database are done in a private part of the website called “insidecnvc.” A data dictionary of the current database begins on the next page. Functionality that currently exists there includes several areas:

  • Maintaining contact data for people in the CNVC network, including full contact information that is available to CNVC and staff members and certain people in the network, plus separate contact information (a smaller amount—no mailing address) for people who are listed on the public website (trainers, local NVC supporters, board members).
  • Everyone who has access to “insidecnvc” has a function within the organization, sometimes several functions. These functions determine access and also where each person shows up.
  • CNVC-certified trainers post their trainings; multiple trainers can be assigned to each training, we want multiple contact people to be able to be assigned to a training
  • CNVC-certified trainers post their trainer reports each year (these are available only in “insidecnvc”
  • For CNVC and staff members and certain people in the network there is a function to look other people up and see their contact information
  • Maintaining the list of countries (affects drop-down lists)
  • Maintaining a list of topics for the trainings (affects drop-down lists)
  • A report of all people with contact information in “insidecnvc” is produced on demand
  • There are other pages available in “insidecnvc,” but they are maintained manually

The pages that are database-generated on the public cnvc.org website:

Click on the “find nvc trainings” button without selecting anything from a drop-down list to see a list of trainings, then click on “more” to see how a training displays

This link will take you to Austria. It is a representative country (it has all 3 parts of the page).

The top part of the page is hard-coded, the board members are database generated

  • People who want to be local NVC supporters start to register themselves on this page: