• Stars
    star
    1,536
  • Rank 30,262 (Top 0.6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 12 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The NPR visuals team's opinionated project template for client-side apps.

nprviz's Project Template

About this template

This template provides a a project skeleton suitable for NPR projects that are designed to be served as flat files. Facilities are provided for rendering html from data, compiling LESS into CSS, deploying to S3, installing cron jobs on servers, copy-editing via Google Spreadsheets and a whole bunch of other stuff.

This codebase is licensed under the MIT open source license. See the LICENSE file for the complete license.

Please note: logos, fonts and other media referenced via url from this template are not covered by this license. Do not republish NPR media assets without written permission. Open source libraries in this repository are redistributed for convenience and are each governed by their own license.

Also note: Though open source, This project is not intended to be a generic solution. We strongly encourage those who love the app-template to use it as a basis for their own project template. We have no plans to remove NPR-specific code from this project.

If you want to setup a version of the app template for yourself, read this blog post about how to do so.

Assumptions

The following things are assumed to be true in this documentation.

  • You are running OSX.
  • You are using Python 2.7. (Probably the version that came with OSX.)
  • You have virtualenv and virtualenvwrapper installed and working.
  • You have NPR's AWS credentials stored as environment variables locally.

For more details on the technology stack used with the app-template, see our development environment blog post.

Copy the template

Create a new repository on Github. Everywhere you see $NEW_PROJECT_NAME in the following script, replace it with the name of the repository you just created.

git clone [email protected]:nprapps/app-template.git $NEW_PROJECT_NAME
cd $NEW_PROJECT_NAME

mkvirtualenv $NEW_PROJECT_NAME
pip install -r requirements.txt
npm install

fab bootstrap

This will setup the new repo and will replace README.md (this file) with PROJECT_README.md. See that file for usage documentation.

By default bootstrap will use nprapps as the Github username, and the current directory name as the repository name. This is a best practice, but you can override these defaults if you need to:

fab bootstrap:$GITHUB_USERNAME,$REPOSITORY_NAME

Problems installing requirements? You may need to run the pip command as ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install -r requirements.txt to work around an issue with OSX.

Bootstrap issues

The app-template can automatically setup your Github repo with our default labels and tickets by running fab issues.bootstrap. You will be prompted for your Github username and password.

More Repositories

1

bestpractices

Best practices and coding conventions for the NPR Visuals team.
286
star
2

dailygraphics

NPR Visuals' rig for deploying daily graphics projects in responsive iframes.
JavaScript
285
star
3

copytext

A library for accessing a spreadsheet as a native Python object suitable for templating.
Python
225
star
4

lunchbox

Image tools for social media sharing
JavaScript
173
star
5

tshirt

Planet Money Makes A T-Shirt
JavaScript
151
star
6

mapturner

A command line utility for generating topojson from various data sources for fast maps.
Python
110
star
7

quotable

REPO DEPRECATED; see the current version in Lunchbox http://github.com/nprapps/lunchbox
JavaScript
93
star
8

nprapps.github.com

The NPR visuals team's blog.
HTML
77
star
9

interactive-template

A Node-based template for starting news apps and interactive pages
JavaScript
55
star
10

newscast.js

A library to radically simplify Chromecast web app development.
JavaScript
54
star
11

dailygraphics-next

NPR's daily graphics rig, 2.0
JavaScript
43
star
12

heat-income

Analysis of heat and income in U.S. cities
Python
34
star
13

book-concierge

A concierge for every year
Less
33
star
14

armslist-scraper

A simple scraper for armslist.com listings
Python
32
star
15

waterbug

REPO DEPRECATED; see the current version in Lunchbox http://github.com/nprapps/lunchbox
JavaScript
29
star
16

sidechain

Modern responsive iframes
JavaScript
29
star
17

roku-tinydesk

Tiny Desk Concerts Roku app
Brightscript
28
star
18

books13

NPR's Book Concierge: Our Guide To 2013's Great Reads
JavaScript
27
star
19

totebot2

Everything is better in the new building, even the totebot.
CoffeeScript
25
star
20

django-starter-kit

Opinionated template for Django projects on Python 3 and PostgreSQL
Python
24
star
21

lookatthis

Stories about how you see the world.
JavaScript
22
star
22

betty

An unambiguous dialect of ArchieML
JavaScript
20
star
23

trump-tweet-analysis

Data and sentiment analysis of Trump's tweets
Jupyter Notebook
20
star
24

anno-docs

Live transcription rig
JavaScript
19
star
25

graphics-archive

Archived graphics published using our dailygraphics rig
JavaScript
16
star
26

worldvalues

World Values Survey data analysis
Python
15
star
27

elections16

App for 2016 primary elections
JavaScript
15
star
28

carebot

NPR Visual's Carebot (deprecated, now in: https://github.com/thecarebot/carebot)
Python
15
star
29

walmart

Mapping the growth of Wal-Mart in urban areas.
Shell
14
star
30

ucr-clearance-parser

parse uniform crime reporting clearance data
Python
13
star
31

envivo

A live-blogging application.
Python
13
star
32

bestsongs14

Songs We Love 2014
JavaScript
13
star
33

electris

Elections 2012
PLpgSQL
13
star
34

copydoc

Like copytext, but for docs
HTML
12
star
35

papertrail

Rig for deploying DocumentCloud viewers to S3.
JavaScript
12
star
36

tumble

A rig for handling static tumblr themes in a reasonable fashion.
CSS
12
star
37

playgrounds2

A community-edited guide to accessible playgrounds in the United States.
JavaScript
11
star
38

elections14

We're having an election party.
JavaScript
11
star
39

barkedu

The world is starting to forget about Ebola. The village of Barkedu can't.
JavaScript
10
star
40

dailygraphics-templates

Graphic templates for the dailygraphics-next rig
JavaScript
9
star
41

stl-lobbying

Lobbying in Missouri project with SLPR
JavaScript
9
star
42

bernard

Python
9
star
43

servers

Server setup scripts for NPR Apps servers.
Shell
9
star
44

hollerith

Publish Sheets to S3 as JSON
JavaScript
8
star
45

leso

Processing scripts for Defense Logistics Agency LESO data
Shell
8
star
46

books14

NPR's Book Concierge app
JavaScript
8
star
47

photo-finder

An internal-facing tool for searching instagram.
JavaScript
8
star
48

arrested-development

The one about Arrested Development.
JavaScript
8
star
49

us-wildfires

Fire-forecast data for the United States.
JavaScript
8
star
50

elections20-interactive

Front-end graphics for the 2020 general election
JavaScript
8
star
51

ap-election-loader

basic AP election loader
Shell
8
star
52

mental-health

A Silent Epidemic: The Mental Health Crisis In Our Schools
JavaScript
8
star
53

elections20-primaries

Primary results for 2020
JavaScript
7
star
54

borders-map

Borderland collaboration with CIR
JavaScript
7
star
55

cron-starter-kit

This is a simple starter kit for deploying and maintaining cron jobs on EC2 servers.
Python
7
star
56

austin

The Austin 100
JavaScript
7
star
57

shelf-life

A Tumblr rig for pantry raids.
JavaScript
7
star
58

school-choice

Data analysis for education's school choice in Indiana project
Jupyter Notebook
6
star
59

elections22

Data pipeline and results graphics for the 2022 general election. Building off elections20-interactive.
JavaScript
6
star
60

nprchat

Experimental chat using Firebase.
JavaScript
6
star
61

armslist-analysis

Analysis of the armslist dataset
Python
6
star
62

liveblog-standalone

NPR's liveblog rig 2.0
JavaScript
6
star
63

inauguration

NPR Inauguration 2013 live chat (built on Scribble Live) and "Dear Mr. President" listener call-out (built on Tumblr)
JavaScript
6
star
64

wolves

Big beautiful Gilkey photos of wolves & Nate Rott's audio opus
JavaScript
6
star
65

civilrights

Behind The Civil Rights Act: How it was made and what it means today—commentary on the landmark Civil Rights Act of 1964.
JavaScript
6
star
66

congress-bot

Bot to track legislation and other activity by members of Congress from a specific state
Python
5
star
67

graeae

JavaScript
5
star
68

books18

Best books of 2018
JavaScript
5
star
69

books16

book concierge 2016 edition
JavaScript
5
star
70

elections18-graphics

2018 midterm election front-end; iteration upon 2016 GE work
JavaScript
5
star
71

oscars

Oscar Night 2013 live chat / liveblog (built on Scribble Live), and Best Picture cheat sheet
JavaScript
5
star
72

anno-lambda-authorizer

AWS lambda function that serves as a custom authorizer for AWS API Gateway
Python
5
star
73

geocode-nominatim

Geocode structured & unstructured addresses using Nominatim service
Python
4
star
74

cypher

A Vagrant config for running NPR's news apps
4
star
75

clerk

A cron job --> Slack webhook that posts new action from the House floor
Python
4
star
76

pym-particle

Active development moved to Sidechain
JavaScript
4
star
77

ahca

Python
4
star
78

rockymountain

JavaScript
4
star
79

in-memoriam-2013

NPR Music remembers the singers, instrumentalists, songwriters and personalities who died in 2013.
JavaScript
4
star
80

disability

HTML breakout story page for the Planet Money / This American Life / NPR project "Unfit For Work."
JavaScript
4
star
81

executive-orders

Cron job that posts to Slack incoming webhook when new executive orders (or actions or memos) are published to whitehouse.gov
Python
4
star
82

autocomplete-input

JavaScript
3
star
83

sanctuary-cities

Python
3
star
84

bestsongs15-midyear

best songz, 2015 midyear edition
JavaScript
3
star
85

commencement

The Best Commencement Speeches, Ever
JavaScript
3
star
86

sea-level-scroll

Visual narrative: Who Will Pay To Protect Tech Giants From Rising Seas?
JavaScript
3
star
87

okkervil

An audio-guided tour through a Leaflet map
JavaScript
3
star
88

syria

With Syria engulfed in civil war, here are four stories of families struggling to stay together.
JavaScript
3
star
89

elections18-general

2018 midterm election back-end: Associated Press data ETL, database, admin panel, and JSON output; iteration upon 2016 GE work
JavaScript
3
star
90

nola

The End Of Neighborhood Schools: New Orleans charter schools
JavaScript
3
star
91

science-of-joy

It's a joy generator
JavaScript
3
star
92

factcheck-db

Python
3
star
93

sotu

Application for aggregating NPR's State of the Union coverage (built on Scribble Live)
JavaScript
3
star
94

elections16-general

You already know what it is.
JavaScript
2
star
95

musicgame

JavaScript
2
star
96

elections16graphics

Front-end for 2016 elections
JavaScript
2
star
97

wildfire-scroll

Visual narrative: United States of Wildfire
JavaScript
2
star
98

us-drought

JavaScript
2
star
99

liveblog-headlines

RSS widget for liveblogs or NPR.org API feeds
JavaScript
2
star
100

familymeal

An NPR project (built on Tumblr) centered around user-submitted photos of their dinners.
JavaScript
2
star