/hipsteroid

Demo application for "Grails for hipsters" talk at GGX 2012

Primary LanguageJavaScript

Hipsteroid

This is a demo app written for the talk Grails for Hipsters at Groovy & Grails Exchange 2012 and Gr8Conf US 2013. It is a simple Instagram-like photo sharing app.

The slides for the talk can be found on SlideShare and the video is available via SkillsMatter.

Structure

  • filter contains a vert.x application that does image processing.
  • hipsteroid contains a Grails application that controls workflow.

Things you need to run this demo

Some way to compile…

Compiling front end resources

Grunt

To run the Grunt build you need to first run npm install (just once) to pull in the various Grunt plugins. Then you can execute:

grunt

To compile CoffeeScript, LESS & Handlebars. Or:

grunt watch

To monitor for changes in those resources and automatically compile them if they change.

Grails will automatically run grunt when it's compiled

Command line:

To install the command line tools:

npm install -g coffee-script
gem install compass
npm install -g handlebars

Then use the following commands to compile the resources:

coffee -c web-app/app
lessc web-app/app/hipsteroid.less > web-app/app/hipsteroid.css
handlebars web-app/app/templates/ -f web-app/app/templates.js

To run the app

You need to run 3 things simultaneously. I just use 3 terminal tabs.

The vert.x app

cd filter
./gradlew build runMod

The grails app

cd hipsteroid
grails run-app

MongoDB

mongod

Tests

Unit tests are standard Grails / Spock tests. Javascript tests use Testem (npm install -g testem), End-to-end tests use Casper JS (brew install casperjs on a Mac or download from site).

To run JS unit tests (continuous test mode)

cd hipsteroid
testem

Then just point a browser (or multiple browsers) at http://localhost:7357/.

To run JS unit tests (continuous integration mode)

cd hipsteroid
testem ci

To run end-to-end tests

The app must be running before you do this.

cd hipsteroid
casperjs test test/end-to-end/