Skip to content


Subversion checkout URL

You can clone with
Download ZIP
understanding networks rest project
JavaScript CSS Arduino
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


HighFiver is a networked high five competition between three friends at ITP. A button at ITP will trigger text messages to be sent to the three contestants notifying them that someone is awaiting a high five. The contestants then have to race each other to the floor and high five the waiting participant. All high fives will be logged to a RESTfully-accessible database so we can build things like an online leaderboard.

Running the server locally for testing

Skip any of the following steps if you have the thing already.

  1. Clone repo and cd into server directory
  2. Install node / npm:
  3. Install express globally: sudo npm install -g express
  4. Install node packages: npm install
  5. Install homebrew: ruby -e "$(curl -fsSL"
  6. Install mongodb (took around 10 minutes for me): brew install mongodb
  7. Run application: node server/app (once you have the Heroku Toolbelt installed you can alternatively use foreman start)
  8. Run mongod: mongod
  9. Seed game players: http://localhost:3000/players/seed
  10. Load application: http://localhost:3000/

To POST a new High Five:

curl -i -X POST -H 'Content-Type: application/json' -d '{"strength":10}' http://localhost:3000/players/sam/highfives/add

Deploying the server to Heroku

  1. Sign up for Heroku
  2. Install the Heroku Toolbelt
  3. Create a new app
  4. Link your clone of this repo to your Heroku repo: git remote add heroku
  5. Enable websockets on Heroku app: heroku labs:enable websockets -a your-app-name
  6. Enable MongoLab on Heroku app (this might require you to verify your Heroku account): heroku addons:add mongolab
  7. Push to Heroku: git push heroku master

Running the Arduino Yun: ATmega side


Running the Arduino Yun: Linux side



Something went wrong with that request. Please try again.