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