GithubHelp home page GithubHelp logo

imclab / spotlight Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alphagov/spotlight

0.0 2.0 0.0 2.59 MB

Hybrid rendering application for the Performance Platform using Backbone and D3

License: MIT License

spotlight's Introduction

Spotlight

Hybrid rendering app for the GOV.UK Performance Platform using Backbone and D3. JavaScript is shared between the client and server, and the app makes use of progressive enhancement to provide a great experience in every browser.

Installation

This app runs inside the Performance Platform development environment, not in the standard GDS development VM.

Install dependencies. Run these commands on the VM.

bundle install
sudo apt-get install npm
sudo npm install -g [email protected]
sudo npm install -g [email protected]
npm install

Building and running the app

Development

If you're using our dev environment then cd /var/apps/pp-development and bowl performance. Once you've set up your DNS, http://spotlight.perfplat.dev will work. This will use backdrop as a data source.

If you want to run the app with stubs then cd /var/apps/spotlight and grunt. Once you've set up your DNS, http://spotlight.perfplat.dev will work. This will use stubs as a data source.

Otherwise, if not on the VM...

cd <spotlight_dir>
NODE_ENV=development_no_vm grunt

This will create a development build of the assets and then run the app at http://localhost:3057.

The app uses node-supervisor and grunt-contrib-watch to monitor changes, automatically restart the server and recompile Sass.

If you want to test with PNG fallbacks run the screenshot-as-a-service app first in the appropriate environment.

Running tests

Command line

Tests are divided into ones that work on both client and server (test/spec/shared), ones that are server-only (test/spec/server) and ones that are client-only (test/spec/client).

grunt test:all runs all three of these tests in sequence:

  • grunt jasmine_node executes shared and server Jasmine tests in Node.js.
  • grunt jasmine executes shared and client Jasmine tests in PhantomJS.
  • grunt cucumber executes Cucumber features through PhantomJS.

bundle exec cucumber --profile sauce executes Cucumber features through SauceLabs (there's no Grunt task for this yet).

Browser

When the app is running in development mode, Jasmine tests for shared components are available at /tests. The specrunner gets automatically recreated on server start and when the specfiles change. Due to a bug in grunt-contrib-watch, new spec files are not currently detected automatically. When you add a new spec file, either restart the app or run grunt jasmine:spotlight:build.

Debugging locally

Install node-inspector on your VM with sudo npm install -g [email protected] and run it with node-inspector.

On the VM:

Start the app with node --debug app/server.js.

Visit http://spotlight.perfplat.dev:8080/debug to view the console.

Or on your machine

Start the app with:

node app/server.js \
--env=development_no_vm

Visit http://localhost:8080/debug to view the console.

Production

grunt build:production to create a production release.

NODE_ENV=production node app/server.js to run the app in production mode.

Status

Build Status

Dependency Status

devDependency Status

Dependency Status

spotlight's People

Contributors

abersager avatar alexmuller avatar annapowellsmith avatar edds avatar jabley avatar jcbashdown avatar phss avatar robyoung avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.