GeBeater / edinerguide

An Ember.js based Single Page Web Application (SPA) to find a restaurant close by a given location.

Home Page:http://edinerguide.de/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

edinerguide

A web based decision aid to find a restaurant close by a given location.

CODESHIP status

Coverage Status Dependency Status

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:

  1. Install Virtual Box
  2. Install Vagrant
  3. Install Vagrant-Berkshelf Plugin
  4. 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-89960Ubuntuprecise_amd64.deb
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-90405Ubuntuquantal_amd64.deb
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.

CI and CD in practice

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

License

MIT License

About

An Ember.js based Single Page Web Application (SPA) to find a restaurant close by a given location.

http://edinerguide.de/

License:MIT License


Languages

Language:JavaScript 92.5%Language:Shell 4.9%Language:CSS 1.9%Language:Ruby 0.7%