hipsteroid
hipsteroid copied to clipboard
Demo application for "Grails for hipsters" talk at GGX 2012
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
filtercontains a vert.x application that does image processing.hipsteroidcontains a Grails application that controls workflow.
Things you need to run this demo
- Grails 2.2.3
- Vert.x 1.3.1
- MongoDB
- ImageMagick (you may have this already - try running
convertin a terminal)
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/