masokotanga / hipsteroid

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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/

About

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