/learning_javascript_angular_shoppingcart

Shopping cart example module with angularJs

Primary LanguageHTMLMIT LicenseMIT

angular-shopping-cart

Getting Started

To get you started you can simply clone the shoppingCart repository and install the dependencies:

Prerequisites

You need git to clone the angular-shopping-cart repository. You can get git from http://git-scm.com/.

You must have node.js and its package manager (npm) installed. You can get them from http://nodejs.org/.

Clone shoppingcart

Clone the shoppingcart repository using git:

git clone https://github.com/denishvachhani/shoppingcart.git
cd shoppingcart

The depth=1 tells git to only pull down one commit worth of historical data.

Install Dependencies

We have two kinds of dependencies in this project: tools and angular framework code. The tools help us manage and test the application.

We have preconfigured npm to automatically run bower so we can simply do:

npm install

Behind the scenes this will also call bower install. You should find that you have two new folders in your project.

  • node_modules - contains the npm packages for the tools we need
  • app/bower_components - contains the angular framework files

Note that the bower_components folder would normally be installed in the root folder but shoppingcart changes this location through the .bowerrc file. Putting it in the app folder makes it easier to serve the files by a webserver.

Run the Application

We have preconfigured the project with a simple development web server. The simplest way to start this server is:

npm start

Now browse to the app at http://localhost:9000/index.html.

Directory Layout

app/                    --> all of the source files for the application
  app.css               --> default stylesheet
  assets/               --> contains all images, sprite images
  mocks/                --> mock files
  directives/           --> store all reusable directives
  modules/              --> list all the modules
    shoppingCart/                --> the shoppingCart view template and logic
      shoppingCart.html            --> the partial template
      shoppingCart.js              --> the controller logic
      shoppingCart_test.js         --> tests of the controller
  app.js                --> main application module
  index.html            --> app layout file (the main html template file of the app)
karma.conf.js         --> config file for running unit tests with Karma

Testing

Running Unit Tests

The shoppingcart app comes preconfigured with unit tests. These are written in Jasmine, which we run with the Karma Test Runner. We provide a Karma configuration file to run them.

  • the configuration is found at karma.conf.js
  • the unit tests are found next to the code they are testing and are named as ..._test.js.

The easiest way to run the unit tests is to use the supplied npm script:

npm test

This script will start the Karma test runner to execute the unit tests. Moreover, Karma will sit and watch the source and test files for changes and then re-run the tests whenever any of them change. This is the recommended strategy; if your unit tests are being run every time you save a file then you receive instant feedback on any changes that break the expected code functionality.

You can also ask Karma to do a single run of the tests and then exit. This is useful if you want to check that a particular version of the code is operating as expected. The project contains a predefined script to do this:

npm run test-single-run

Contact

For more information on AngularJS please check out http://angularjs.org/