Skip to content

nprapps/cushman

Repository files navigation

Lost and Found

Once upon a time there was a man named Charles W. Cushman. A hobbyist, he was a very early adopter of color film, and archives like his are rare. That is, archives this vast and this good. Beyond his photos lies a story of road trips, attempted murder, and the lifelong search for depth of field.

This project was originally published in 2012. It was partially ported over to the NPR News Apps interactive template in 2020 and moved to apps.npr.org.

Getting started

To run this project you will need:

  • Node installed (preferably with NVM or another version manager)
  • The Grunt CLI (install globally with npm i -g grunt-cli)
  • Git

With those installed, you can then set the project up using your terminal:

  1. Pull the code - git clone [email protected]:nprapps/cushman
  2. Enter the project folder - cd cushman
  3. Install dependencies from NPM - npm install
  4. Sync files grunt sync
  5. Start the server - grunt

Running tasks

Like all interactive-template projects, this application uses the Grunt task runner to handle various build steps and deployment processes. To see all tasks available, run grunt --help. grunt by itself will run the "default" task, which processes data and starts the development server. However, you can also specify a list of steps as arguments to Grunt, and it will run those in sequence. For example, you can just update the JavaScript and CSS assets in the build folder by using grunt bundle less.

Common tasks that you may want to run include:

  • sync - sync photo, audio and other large media assets between S3 and your local computer
  • sheets - updates local data from Google Sheets
  • docs - updates local data from Google Docs
  • google-auth - authenticates your account against Google for private files
  • static - rebuilds files but doesn't start the dev server
  • cron - runs builds and deploys on a timer (see tasks/cron.js for details)
  • publish - uploads files to the staging S3 bucket
    • publish:live uploads to production
    • publish:simulated does a dry run of uploaded files and their compressed sizes

Troubleshooting

Fatal error: Port 35729 is already in use by another process.

The live reload port is shared between this and other applications. If you're running another interactive-template project or Dailygraphics Next, they may collide. If that's the case, use --reload-port=XXXXX to set a different port for the live reload server. You can also specify a port for the webserver with --port=XXXX, although the app will automatically find the first available port after 8000 for you.

About

A black-and-white era in full color

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published