Skip to content
Bill Hunt edited this page Dec 23, 2013 · 14 revisions

A brief overview of Madison:

Madison is a collaborative, crowd-sourced document editing platform. It can be used for any type of document, but has been built with the idea of using it to gather input on policy documents on the federal, state, and municipal levels.

The Madison Document Architecture

Right now Madison stores documents in a mysql database that hold the top-level document information in one table, and the content ( line by line ) in another. The document content is also in a tree structure with each line storing the id of the line that contains it ( in an outline-like structure ). The annotations are then attached to the id of the line they target. This makes drafting, storing, and accessing the documents very difficult and Madison cannot handle overly lengthy documents due to the many mysql queries that must be run to identify the document structure.

We are in the middle of transitioning to a new document storage system. Documents can now be edited as standard Markdown files, and Wysiwyg editor is available. These files are pre-rendered as html when saved to be delivered to the browser, rather than costly parsing on each side.

Check out the entire Madison architecture.

Where we're going

We need a solution that can work both technically but also for the average individual that will be drafting and collaborating on these documents. The documents are now stored as whole markdown files, with rendered-html versions available for quicker loading; the annotations should be used as git commits to those files. This allows the documents to be easily drafted, exported, and versioned to track the changes to the documents.

On the annotation side, we will be using Hypothesis to facilitate feedback on the documents.

Take a look at the current status of that integration.

Clone this wiki locally