Hammer is an SDK used to build exam questions. It uses HTML as its template language. Hammer extends the browser's default behavior with the use of "packages". Depending on the exam being developed different packages will be used. The exam seed project provides everything needed to get started creating an exam quickly.
Minimum RequirementsYou should have some knowledge on how to create web pages using HTML and CSS. You should also feel comfortable enough modifying JSON file and running command lines from a console window. It isn't as bad as it sounds ;)
Advanced RequirementsIn order to create custom widgets and really take advantage of all the features offered by Hammer, you should feel comfortable with the following libraries and tools:
- AngularJS 1 - AngularJS is a library that extends the behavior of HTML. It is the primary library which Hammer extends. If you plan to create any custom widgets, you should understand how to create a directive in Angular.
- Hummingbird - Hummingbird is toolset of commonly used functionality used to build web applications. You can think of it as a conglomerate of jQuery, underscore and other common functions used by web developers. Hummingbird has the ability to treeshake, meaning it only includes functions used, rather than the entire library. Here is a list of available modules
- LESS - Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques that allow you to make CSS that is more maintainable, themable and extendable. Less runs inside Node, in the browser and inside Rhino.
- Grunt - Grunt is a tasks manager built on NodeJS. It is used by Hammer to compile and optimize files during the packaging and build process. You really only need to know how to modify the existing configs.
Optional (Nice To Knows)
Knowing the following can only help...
Hammer can work in the environment of your choosing, but these are the recommended IDEs:
Here are some common terms that are used throughout Hammer.
|Package||A package can be thought of an extension or plugin to the SDK. A package is a compilation of
templates, scripts and other resources that can be used to extend the
environment. A package can contain any of the following items:
|Widget||A widget is a visual component that is displayed on the screen. Example: button or a text input.|
|Expression||The expression tags
|Event||An subscription model used to send and receive instructions in the environment.|
|Service Objects||Service objects are definitions that span across the exam. Strings, model and interceptors are service objects.|
|Actions||Actions are tasks used in function