Dashboard for Github projects using Conductor.js and Oasis.js
JavaScript Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
cards
configurations
docs/diagrams
glazier-server @ 5e854ce
grunt-utils
public
stylesheets
tasks
templates
test
vendor
.gitignore
.gitmodules
.jshintrc
.travis.yml
ARCHITECTURE.md
DEPLOYMENT.md
Gemfile
Gemfile.lock
Gruntfile.js
LICENSE
README.md
glazier.sublime-project
npm-shrinkwrap.json
package.json

README.md

glazier

Build Status

Dashboard for Github projects using Conductor.js and Oasis.js.

Setup

Install Dependencies

For the proxy:

Grunt

npm install -g grunt-cli

For the Glazier server:

Ruby 1.9.3

Postgres 9.2.x

Get the project

git clone git://github.com/yapplabs/glazier
cd glazier
git submodule update --init

There are two components to set up: the Glazier proxy and the back-end rails server (Glazier server).

Glazier server is a submodule. The project is here

Set up Githup API credentials

Create a Github app for your Glazier app at http://github.com/settings/applications/new

In the form enter:

Application Name: anything you like (e.g. "glazier-dev")
Main URL:         http://localhost:8000
Callback URL:     http://localhost:8000/api/oauth/github/callback

When you submit the form you will get a client id and client secret. Set the following environment variables:

GLAZIER_GITHUB_CLIENT_ID=<git client id>
GLAZIER_GITHUB_CLIENT_SECRET=<git client secret>
#these are needed in the windows running both the proxy and the server

Setup the database and prepare the server

cd glazier-server
bundle install
rake db:create
rake db:migrate

Run npm install

# from the top glazier directory
npm install

Clone card repositories and symlink them into the glazier/cards directory

# from the top glazier directory
grunt cloneCards
ls -al ./cards/ # to see where the symlinks point

Install the Glazier proxy dependencies and start the proxy

# navigate to the top glazier directory
# make sure client id and client secret are set in this window
bundle install
grunt              //interrupt this task when it reaches the Waiting state
grunt ingest
grunt ingestCards
grunt

Start the server

grunt server   //from the top glazier directory

Navigate to the app in your browser

http://localhost:8000/

Adding Node Packages

Glazier uses npm shrinkwrapping to prevent dependency version problems. If you add or change dependencies in the package.json files (either container or cards), make sure to run npm shrinkwrap in the appropriate place.

Running specs

Start the grunt server with grunt, then visit:

http://localhost:8000/test/index.html

QUnit tests that are able to be run in Phantom (see https://github.com/yapplabs/glazier/issues/1) will run as you make changes or you can run them with grunt qunit:all

glazier-server uses RSpec for unit tests. To run them:

bundle exec rake

To automatically execute glazier-server specs as you update code and specs:

bundle exec guard

Default Cards

grunt cloneCards clones and symlinks the following repositories into the glazier/cards folder:

Troubleshooting

500 Internal Server Error

If this occurs immediately after you update the project, its possible the database structure has changed and you haven't migrated. Run:

#in glazier/glazier-server directory
rake db:migrate

NPM, Grunt Errors

If you're using Glazier for the first time and get errors running npm install, make sure your version of npm is current. Outdated versions will give errors such as telling you npm can't find a certain module which it subsequently lists as installed (nice!).

If grunt commands just won't run, sometimes its because node modules have gotten out of sync. Try deleting the /node_modules subdirectory and re-running npm install