The GuildRunner web application is a sandbox project for learning how to build Angular 2 web applications through research and experimentation. Blog posts concerning the evolution of the project can be found at http://www.thoughtdelimited.org/thoughts
As of release 0.0.3, this application is built around Angular 2 release candidate 5 (RC5) and Angular CLI version beta.10. So it does not utilize Webpack as its module loader (it uses SystemJS), but it does use the ngModule feature introduced in Angular 2 RC5.
To download and execute this web application on your own system, perform the following steps:
- 
Install node.js on your system if you don't already have it.
 - 
Perform a global install the latest version of Angular CLI that uses SystemJS as its module loader.
- The current version of Angular CLI still uses SystemJS, so you can perform the install with the following command: npm install -g angular-cli.
 - In the near future, Angular CLI will use Webpack as its module loader, at which point you would need to install the last SystemJS version rather than the current CLI version.
 
 - 
Download the repo to a project folder on your system.
 - 
Open a terminal/command prompt in the project folder and execute the following commands:
- npm install to download and install the necessary node modules (this will take at least a few minutes)
 - ng serve, which will create a "dist" folder in the project and will serve the application
 
 
- Revised the sandbox Chapter edit form to use the vadacl validation library, which allows developers to define validation rules at both the data object and component level.
 
- Created a sandbox version of a Chapter edit form using reactive form classes (FormGroup, FormArray, and FormControl) and Validators.
 
- Removed Address and Member domain classes; added Person, Location, Chapter, ChapterLocation, and ChapterMember classes; refactored Guild class
 - Created new approach to setting domain class property defaults and setting property values in the constructor
 - Created sandbox views and master list views for Chapters and ChapterMembers
 - Utilized Promise.all() to resolve multiple promises in component methods that need data from multiple service methods
 
- Added "incorporationYear" and "email" properties to the Guild data and domain class
 - Refactored the Guild domain class to allow it to be instantiated without data
 - Created basic add/edit form for guild objects
 - Created first draft of proof-of-concept for validating a pre-RC6 template-driven form
 - Created HttpResponse object for transporting HTTP response data from the service to the component
 
- Upgraded Angular modules to release candidate 5 (RC5)
 - Refactored routing code to use latest routing setup and syntax
 - Refactored multiple files to utilize ngModule introduced in RC5
 - Moved sandbox feature files into separate module and routing file
 
- Added Bootstrap navigation bar
 - Added routing
 - Created guild, address, and member data and domain classes
 - Created "sandbox" area of application to hold experimental/diagnostic features
 - Created guild master list component to display data from instances of the Guild domain class
 
- Basic application foundation established
 - Added in-memory web API to application to make use of mock data
 - Created "db" folder to hold mock data exports