Angular front-end to our Hindsight Application - a tool for running seamless Retrospectives
There are a couple install options below - one using vagrant so projects leave no trace on your laptop or you can do the manual install option.
Install vagrant
Clone the repository
vagrant up
- Edit on your 'host'. Use the IDE / OS that makes you the most productive / happiest.
- Run the server/test on vagrant. SSH into the box
vagrant ssh
cd /vagrant
grunt server
The vagrant box shares the project directory so changes made in your ide are instant reflected on the box.
The box uses nvm to manage node.
vagrant ssh
cd /vagrant
nvm use
will get you to the root of the project and using the right version of node.
Because we use nvm, node is siloed to the vagrant user, so you shouldn't need sudo ever.
The box also uses rvm to manage java.
Browser tests run via X11. You must have XQuartz or similar installed for them to work. If you find this to be a PITA please remove selenium and make the tests run headlessly :-)
If you make changes to the box that you would like to see propagated to the team:
vagrant package
will make a .box file that you can put on the internets. Be sure to update the Vagrantfile to point to your new image.
Vagrant does a few very things well
- You can get up and running in minutes, regardless of your experience
- Projects leave no trace on your laptop
vagrant destroy
cd ..
rm -rf <project dir>
- You can experiment with new server configuration:
- Without destroying your laptop
- Fear of loosing time if it all goes wrong
vagrant destroy
vagrant up
- Share the new configuration with the team with a checkin
If you want to run your dev environment on your own machine do the following
After cloning the code into a directory, cd into the directory and run:
npm install
bower install
You may need to install Ruby and Compass (using rvm: "rvm install ruby-2.1.1" and "gem install compass").
If your shell can't find grunt after the npm install, you need to install grunt-cli globally by running: npm install -g grunt-cli
For integration tests, install protractor:
npm install -g protractor
(You may need to run 'sudo npm install -g protractor')
Download the selenium server with:
webdriver-manager update
(You may need to run 'sudo webdriver-manager update')
Start the app: grunt serve
Run the unit tests: grunt test
Check the integration tests pass by starting grunt server and starting the selenium server in separate terminal windows:
grunt serve
webdriver-manager start
and finally, run the integration tests: protractor tests/protractor.conf.js
To deploy, we are hosting on heroku and you must run: grunt build to write new dist/ files and then commit and push the dist files to heroku: git commit -m "build" git push heroku