localgram icon indicating copy to clipboard operation
localgram copied to clipboard

An example Backbone and Requirejs application

Localgram

This is an example JavaScript application which uses Backbone and Requirejs. It uses Jam for package management and has a set of tests written with Jasmine. It uses Grunt (0.4) as a build tool.

It uses the Geolocation API and the Instagram API to show a set of nearby photos.

Setup

You will need Node.js and NPM installed. Visit the Node.js website for instructions for your OS.

  1. Clone the repo:
$ git clone [email protected]:mrappleton/localgram.git
  1. Install build dependencies (these are listed in package.json under devDependencies):
$ npm install
  1. Install front end dependencies:
$ jam install
  1. Rename js/constants.js.example to js/constants.js:
$ mv js/constants.js.example js/constants.js
  1. Visit Instagram and register an API client. Copy your client_id into js/contants.js.

  2. Run the development server and visit http://localhost:8000/ in a browser.

$ grunt connect:dev

Grunt tasks

This project includes a number of Grunt build tasks:

  1. grunt jshint: Runs all JavaScript against JSHint.

  2. grunt spec: Runs Jasmine tests in a headless PhantomJS instance.

  3. grunt spec-server builds the Jasmine spec runner file and starts a server to view it in a browser. Visit http://localhost:1337/_SpecRunner.html for easier test debugging

Project compilation

The application is split across may different files. THey can be built together into a single file suitable for production deployment by running:

$ jam compile build/app.js

This run the r.js optimizer and put the compiled output into build/app.js.