-- the OpenRecord project ended in 2008, and this old website is here just for the historical record

Product Specification

Introduction

This feature list describes a hypothetical system designed to facilitate web-based collaboration. This OpenRecord design is inspired by wiki software and sites like Wikipedia, as well as Content Management Systems (CMSs) like Zope/Plone and eZ publish. The OpenRecord design also draws on ideas from outliners like Lotus Agenda and OmniOutliner, spreadsheets like Lotus Improv, and newer work like Chandler and RDF.

OpenRecord is similar to a wiki, but with some database features added in. Wiki systems usually let you organize your content as pages of text, or pages of rich text. In OpenRecord your content is organized as a database of items, or records. Each page on an OpenRecord site can query the database to get some set of items, and those items can be displayed in an editable table, or in an outline format, or in other formats. In time, OpenRecord could grow to incorporate simple spreadsheet features, as well as interactive charting and graphing features, and OLAP and pivot table features.

Goals

  1. Enable a workgroup to work in an unusually open and transparent style
  2. Facilitate sharing and collaboration
  3. Facilitate tracking of goals, tasks, and work accomplished
  4. Facilitate comparison and prioritization
  5. Facilitate categorization and structuring of content
  6. Make it easy to create new content without first planning how the content will be organized
  7. Make it easy to gradually add structure and organization to the content.
  8. Make it easy to re-organize content in different ways, and have multiple concurrent organization schemes.
  9. Discourage the growth of a jumbled jungle of rambling discussion
  10. Offer features geared more toward collecting facts and figures, rather than op-ed content
  11. Discourage long pure-text discussion threads (like email or IRC)
  12. Facilitate the creation of valuable reference material

Examples of use cases

  1. People can propose new ideas for the workgroup to consider. It should be easy to do make a new proposal, perhaps by filling in some simple form.
  2. People can add little scraps of new information about a proposal that was previously suggested. For example, if one person proposes that the group lease equipment from a certain vendor, but doesn't give the URL for the vendor's website, another person can come along later and fill in the missing information.
  3. A site might provide a small database of interesting products, or companies, or non-profit organizations. Each entry could include lots of little details we might want to keep track of, like links to the external websites, or the tax id number of the organization.
  4. People can add to the list of things to keep track of about an organization. For example, somebody might create a new field for keeping track of when each organization was founded, and then other people can fill in the value for that field for each new organization, and people can go back and fill in that information for previously listed organizations.
  5. People can fill out surveys, and the site can gather the and display the results.
  6. People can create new surveys covering different topics, like what countries the organization operates in, or what their affirmative action and employment practices are, or what their fundraising practices and organizational overhead rates are.
  7. People can create new "scorecards", which give scores to different organizations based on the answers to questions on different surveys. (Or perhaps some other sort of tools geared toward quantitative evaluation?)
  8. People can look at lists of organizations and see how they scored on scorecards.
  9. People can contribute to cost-benefit estimates based on knowledge about the work the organizations do.
  10. People can see accounting records about how the group is using its money.
  11. People can see a record of all the email sent and received by the project.
  12. People can see simple charts and graphs, generated from whatever quantitative info we have on record, like the annual budgets of different organizations, or how much money the project spent this year compared to the last 2 years.
  13. People can disagree with each other, with having to argue about it. Two people can have different answers to the same question, and the system can record both answers, and show both answers to anybody who asks.
  14. People can propose new ideas. People might propose new ways of running the site, or new sections the site should include, or a new ways for selecting what work to do.
  15. People can comment on proposals, and list pros and cons, and add suggested amendments or refinements.
  16. People can vote for or against proposals, or somehow rate or rank the proposals.

Features

Staged Implementation Roadmap

Should we decide to build our own software infrastructure "from scratch", rather than using an existing product like eZ publish, we will want to build out in stages. Here's are some initial thoughts about how to sequence the stages.

Feature Set Milestone
0.1
(minimal kernel)
0.2 0.3 .4 .5 .6 .7 .8 .9 1.0
Account creation nope nope — demo accounts are hard-coded nope ? ? ? ? ? ? yup — people can create accounts for themselves
Authentication nope — you can edit without logging in yup — users can log in yup yup
Scalability nope — if two people edit, the system crashes nope — only one user can be logged in at a time nope yup — a few users can be logged in at a time
Data store nope — dead-simple single-file plain-text "data store" nope — dead-simple single-file plain-text "data store" nope yup — safe and reliable
Clean UI yup — we do good UI design from day one yup yup yup
URLs yup — we do good URL design from day one yup yup yup
Items yup — everything is an item yup yup yup
Attributes yup — any attribute can have more than one value — attributes are items too yup yup yup
Data types nope yup — an attribute can have a suggested data type yup yup
Kinds yup — items can be assigned to kinds — any item can serve as a kind yup yup yup
Categories yup — items can be put in categories yup yup yup
Pages and sections yup — support for table sections and detail sections yup — support for outline sections yup yup
Editing items yup — items can be edited yup yup yup
Editing page layouts yup — page layouts can be edited yup yup yup
Change logs nope — we only record current values yup — change histories are recorded yup yup
Nav bar yup — simple nav bar yup yup yup
Standard formats yup — XHTML, CSS, etc. yup yup yup
Sunshine features yup — nothing anonymous, nothing invisible, no decay yup yup yup
Platforms nope — just Firefox on windows nope nope yup — IE, Firefox and Safari, on Windows, Mac, and Linux
Search tools nope nope nope yup
Subscriptions nope nope nope yup
Photos nope nope nope yup
Transparent email accounts nope nope nope yup
Live updates nope nope nope yup
Content export nope nope nope yup
Accessibility nope nope nope yup
Interoperability nope nope nope nope
Skins/Themes nope nope nope nope
Derived attributes nope nope nope nope
On-line help nope nope nope yup
Polyglot items, i18n, l10n nope nope nope nope
Security nope nope nope nope
Scripting nope nope nope nope
Text recognition nope nope nope nope
Installers nope nope nope nope