Skip to content

Feature: content authoring

Pam Drouin edited this page Sep 3, 2021 · 7 revisions

Description

Internal web application for managing supplemental content categories and items. (When we say supplemental content, we mean policy-related content outside of the regulation text that we import from eCFR. For example, links to State Medicaid Director Letters are supplemental content items.)

Problem statement

In previous iterations of eRegulations worked on by other teams, such as ATF eRegulations, a domain/policy SME would need to write supplemental content in a document of some kind, go through their own content approval processes if necessary, and give the approved material to a developer to implement.

That wasn't going to work for us! There's too much content, that's a laborious process, and we want CMCS eRegulations to be a long-term sustainable project.

Our team SME and our CMS partners need to be able to add and edit supplemental content independently, along with potentially approving or otherwise reviewing it. They need to be able to focus on the content using their existing expert professional skills, without needing special training in code/markup.

Our team SME compiled a lot of supplemental content in spreadsheets before we were ready to work on a content authoring interface. This was a good initial way to gather information and prototype what we needed, but spreadsheets are not a good long-term content management solution for us. They are difficult to work on collaboratively (especially because our CMS partners generally do not have access to Google Sheets), they can easily get inconsistent, and they often take developer work to sync up with the database.

Feature hypothesis

  • We believe that: providing a web application for adding and editing content
  • For: policy/domain SMEs and people supporting them
  • Will result in: content that is consistently structured and reasonably low-effort to maintain for both our policy/domain SMEs and our engineers, so it can be comprehensive and easy to update
  • We will know we are right when: more than one policy/domain SME is able to use the interface to maintain content without errors in a reasonably efficient and tolerable way, and we feel confident promising a specific level of up-to-dateness for supplemental content on our "about" page

Decisions

August 2021

We're using the Django admin tool to add/edit/organize content until (or unless) we find we have needs it can’t accommodate, including until we learn more about what we might need for content governance processes.

The Django admin tool is a content management system made from pre-built components, so it’s less easy to customize than a totally custom system, but the tradeoff is that it’s efficient and reliable to work with - for example, we’re not likely to have to deal with interface bugs such as scrolling problems or lists being wrong. It should be a reliable representation of the data. It's also already a mature application from a security perspective.

It makes sense to discuss and plan improvements to the Django admin tool as needed. We work out what’s needed, do design and copy work, etc, in the same way as our other work (sorting into specific tickets and prioritizing them and so on).

How content gets in:

  • For the moment, our policy SME is adding content by hand as needed to display for demos, even if redundant with spreadsheets.
  • Our team is working to get the existing spreadsheets uploaded by machine, so that Policy SME doesn't have to manually re-add them.
  • For additional content (not in spreadsheets) now and in the future, Policy SME will add in the authoring interface by hand.
  • Based on what we learn about CMCS policy staff needs and content governance needs, we may need to adjust or change our plans - for example, what kind of content workflow do we need? Can we make the Django admin tool support that?

Here's a detailed look at eRegulations' instance of the admin interface for a better understanding of how it is structured.

Overview

Data

Features

Decisions

User research

Usability studies

Design

Development

Clone this wiki locally