# Apres Glossary #

## Module ## {#module}
Javascript modules are scripts that can be loaded using the `require()` function. Once loaded, a module is a Javascript object that can expose functions, and data to the application. Using `require()` allows modules to be loaded asynchronously with proper dependency management.

## Component ## {#component}
A component provides specific application functionality. To create a component, a [configuration object](#config-obj) is applied to a [component type](#component-type). The configuration object defines the component.Components can present views when browsed. Components can contain subcomponents.

## Component Type ## {#component-type}
A component type defines the behavior of a [component](#component). It is also used to create components from [configuration objects](#config-obj). 

## Configuration Object ## {#config-obj}
A configuration object is a Javascript object that contains only data. It has no functionality of its own. Configuration objects are often stored in JSON format for convenience.

## Package ##
A package is a collection of [modules](#modules), [metadata](#metadata), and other files, such as documentation, or even raw data. A package allows these items to be bundled together, released, and installed as a unit.
