Pipeline is a tool for content organization, tracking, and distribution. The Rensselaer Polytechnic is spearheading its development for its own use, but it is generic enough that it can be used by other media organizations looking for an open-source newsroom management suite.
Pipeline tracks stories from start to finish. As soon as an idea is proposed, it can be entered into Pipeline by an editor. Reporters and photographers can be assigned, and details about the story—such as event location and time, people to contact, and related tasks—can be recorded.
As a story is written, goes through the copyreading process, and is eventually published, a history of edits is recorded. Copy readers can easily see where stories are in the copy queue and advance them as they are edited.
After a story has been copy read, it can be pushed into Adobe InDesign for layout and published on a website. The website will be mostly decoupled and get its content from the stable Pipeline API, allowing for website development to occur without strict coordination with the Pipeline maintainers.
Currently, by the time a story is published, it exists in three separate places: Google Drive, InDesign layout files, and https://poly.rpi.edu. There is no single, authoritative history of edits. Additionally, the organization of each issue's content is currently done within a spreadsheet, and it is not associated with the resulting articles. Our goal is to reduce overhead and streamline the story creation, editing, and publishing process.
Pipeline's API is written in Python, and it uses Angular and TypeScript on the frontend. To run it for development:
- Install Docker
- Clone this repo
Take a look at the Dockerfiles in the API, web, and rt-editor folders to figure out how the containers are built.
Docker Hub builds three containers from this repo, and they can be found on The Poly's Hub page.
Pipeline currently has incomplete tests for its API. They require Docker, and
can be run by executing
If you're seeing weirdness, try rebuilding the containers with
docker-compose up --build. If it persists, please contact a team member or open an issue.