/journeymaker-cms

Interactive family-oriented gallery tour builder CMS

Primary LanguagePHPGNU Affero General Public License v3.0AGPL-3.0

Art Institute of ChicagoJourneyMaker: Your Journey Begins Here

JourneyMaker CMS

A Drupal 7 site to administer content

JourneyMaker is an innovative new interactive experience that empowers families to create their own personalized journeys of the Art Institute of Chicago. Designed as a web application and developed for multi-touch screens, the interactive is allows your family to create your very own tour of the museum. Choose one of eight storylines—like Superheroes, Time Travelers, or Strange and Wild Creatures—and then select works from the museum’s collection within that story. After you’ve made your selections, print out your personalized Journey Guide, which includes information, activities, and wayfinding directions. Then head into the museum for an art-filled adventure!

JourneyMaker launched at the Art Institute of Chicago on July 1, 2016 as six multi-touchscreens in our Ryan Learning Center, along with a desktop version available online. It's still in place today and is being maintained by a team of internal developers.

Features

  • Integration with your Collections API
  • Bundles all CMS data to a JSON file for the frontend

Overview

JourneyMaker consists of two parts: a content authoring system written in Drupal, and a public-facing frontend written in JavaScript. This repository contains the content authoring system. In order to deploy your own instance of JourneyMaker, you will also need to install the JourneyMaker Client:

https://github.com/art-institute-of-chicago/journeymaker-client

The JourneyMaker Client does not need to be installed on the same server or under the same domain as the CMS: as long as the client can access the assets stored in the CMS over HTTP (CORS), everything should work fine. For cross-domain development, you can use the Allow-Control-Allow-Origin: * Chrome extension.

For brevity, throughout the rest of this repo's documentation, "JourneyMaker" refers to the public-facing frontend client. "JourneyMaker CMS" refers to the content authoring system, i.e. this repository.

Requirements

You can find information on Drupal 7's requirements here. This package has the following requirements:

  • Composer - to install Drush to this project
  • MySQL 5.7 or greater - to automatically create a database and user if it doesn't already exist

Installation

This repo contains only the Drupal sites directory--the place where all the customizations and contributions to a base Drupal install are kept. We've included an install.sh script that will download and install Drupal for you, to make getting the CMS up and running easier.

Enter these commands from the command line to get started:

# Clone the repo to your computer
git clone https://github.com/art-institute-of-chicago/journeymaker-cms.git

# Enter the folder that was created by the clone
cd journeymaker-cms

# Install Drush to this project
composer install

# Run the install script
./install.sh

The script will download Drupal and extract its contents, then prompt you for database login info. If the database and user specified doesn't already exist, the script will create them for you. It then uses Drush to install Drupal, enable modules, set permissions and some configurations. In the output, look for the Drupal admin password to log into your Drupal site. After the script completes, point the document root of your web server to the journeymaker-cms folder and your admin site should be up and running.

There is some additional content required in order for to get your CMS ready for the client. You'll need to add artworks and tie them to themes. You may see errors until you do this. Please follow the User Documentation for further instructions.

If you install the JourneyMaker Client, you'll need to provide it the URL to the JSON document produced by the CMS. To produce the document, click the "Publish Data" menu option in the CMS. You'll then need to wait for Drupal's cron to run, or go to /admin/reports/status for the option to run the cron manually. Then the following URL should be availabe with all your content bundled together:

http://your-journeymaker-cms.artic.edu/sites/default/files/json/json.json

Integration with your Collections API

There is some functionality built in to retrieve artwork and gallery metadata from a collections API. You can go to /admin/settings/aic-api in your CMS to set the URLs for various queries to your API, but the parsing of the results is currently hardcoded. Take a look at the functions in aic_api.module to make changes to reflect your API. Here are some examples of what your URLs might look like:

# Artwork query by ID URL
http://api.yourmuseum.org/solr/select?fq=document_type:artwork-webcoll&q=object_id:{{pk}}&wt=json

# Gallery query by name URL
http://api.yourmuseum.org/solr/select?fq=document_type:gallery&wt=json&q=title_s:{{name}}

# General artwork query URL
http://api.yourmuseum.org/solr/select?fq=document_type:artwork-webcoll&q={{type}}:{{term}}&wt=json

User Documentation

For information on create and managing content within the CMS, please see the User Documentation.

Contributing

We encourage your contributions. Please fork this repository and make your changes in a separate branch. We like to use git-flow to make this process easier.

# Clone the repo to your computer
git clone https://github.com/your-github-account/journeymaker-cms.git

# Enter the folder that was created by the clone
cd journeymaker-cms

# Run the install script
./install.sh

# Start a feature branch
git flow start feature yourinitials-good-description-issuenumberifapplicable

# ... make some changes, commit your code

# Push your branch to GitHub
git push origin yourinitials-good-description-issuenumberifapplicable

Then on github.com, create a Pull Request to merge your changes into our develop branch.

This project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

We also welcome bug reports and questions under GitHub's Issues.

Acknowledgments

Design and Development by Belle & Wissel Co.

Licensing

The code in this project is licensed under the GNU Affero General Public License Version 3.