edinerguide
A web based decision aid to find a restaurant close by a given location.
Contribution
Virtual Development Environment
In order to ease the life of developers and prevent that the local machine looks like a rubbish tip a Vagrantfile has beend added.
Using Vagrant to create a virtual development environment is quite simple by follow these steps:
- Install Virtual Box
- Install Vagrant
- Install Vagrant-Berkshelf Plugin
- Install Chef
Approved OS Versions and Package Compounds
The virtual environment setup are tested on the systems listed below. All packages are downloaded from the source and not installed via system package manager.
Operation System | Package |
---|---|
Ubuntu 12.04 LTS | virtualbox-4.3_4.3.0-89960 |
vagrant_1.3.5_x86_64.deb | |
chef_11.6.2-1.ubuntu.12.04_amd64.deb | |
Ubuntu 12.10 | virtualbox-4.3_4.3.2-90405 |
vagrant_1.3.5_x86_64.deb | |
chef_11.8.0-1.ubuntu.12.04_amd64.deb |
Preparation of the Virtual Environment
cd /tmp
git clone git@github.com:GeBeater/edinerguide.git
cd edinerguide
vagrant up
vagrant ssh
cd /vagrant
npm install
bower install
grunt server
The application should now be accessible from the guest machine with a browser via http://localhost:9000/. All changes on the application source code will be taken in soon without manual browser refreshing.
Application Architecture
Scaffold
The application based on ember.js. The scaffold was created with YEOMAN using generator-ember v 0.7.1.
Third Party APIs or Libraries
The application uses the foursquare API to search restaurants in a circuit of given coordinates. Latter are determined via Google Maps JavaScript API v3 which also used to provide a complete human-readable location. The HTML5 Geolocation API to detect the users location coming soon.
Continuous Integration and Deployment
Codeship is used for continuous integration and deployment which execute the tests run and the creation of the build package via grunt the used as task runner. The creation of a tagged version is realised by a shell script which also uses GitHub Release API to archive the software. This script also deploy the software to a GitHub Page and sync the master branch with the current, deployed software.
Tests
Karma is used as a test runner which placed into the grunt task runner. QUnit is the testing framework for the unit as well as integration tests. Sinon.JS is used to create spies, stubs and mocks.
cd /tmp
git clone git@github.com:GeBeater/edinerguide.git
cd edinerguide
vagrant up
vagrant ssh
cd /vagrant
npm install
bower install
grunt test