Quote Web App
Client side Quote web application, backed by a Quote HTTP API. To set up your development enviornment, follow the steps below.
Setup
IIS
Install Raven
Host Quote web API (existing quote app) on IIS at http://localhost/Quote.Web.
- Enable Windows Auth
Host the quote-web
folder on IIS as a new site served at port 8008.
- Download and install the IIS URL Rewrite Module
- Enable Windows Auth.
- Grant IIS User access to files.
Dependencies
To install external dependencies, run:
npm install
Depending on your setup you may need to specify your Visual Studio version to NPM. This is done with the
--msvs_version
option. For example:
npm install --msvs_version=2012
style-guide
Clone the style-guide repository. Then, from quote-web
, run:
npm install ../path/to/style-guide/repo
During development, rerun npm install ../path/to/style-guide/repo
to apply any style guide changes to the Quote application.
Develop
JavaScript code is written in ES6. Stylesheet code is written in Less. This needs to be transformed before it can be read by a browser. Webpack manages this transformation and bundling. When Webpack runs, it creates ES5 JavaScript and CSS files that can be read by a browser. These files are located in the public/
folder.
During development, we run webpack every time we change a file. To watch for file changes, run:
scripts/dev
Test
Tests live in the tests/
folder and are jasmine tests. We are using karma as a test runner.
To execute the tests, run:
scripts/test
This watches for file changes and reruns the tests on every change.
We test React components with React.TestUtils, which provides functions for rendering and inspecting components.
Publish
Before publishing or adding the application to an installer, you must run a build script to build the JavaScript code in release mode. Building in release mode means minimizing and telling React to run in release mode (This disables PropType checking).
To build in release mode, run:
npm run build
Running the build script copies the assets needed for deployment into to public/
. To publish the app, copy index.html
, web.config
and the public/
to an IIS web server.