You need to install Meteor to develop this website. You can download the latest version from their website.
This application depends on the standard Atmosphere packages.
meteor-base
mobile-experience
mongo
blaze-html-templates
session
jquery
tracker
shell-server
standard-minifier-css
standard-minifier-js
es5-shim
ecmascript
In addition, the following officialy Meteor-provided Atmosphere packages have also been added.
random
check
audit-argument-checks
reactive-var
reactive-dict
iron:router
accounts-password
underscore
less
email
As advised, the following npm paackage has been added to improve performance.
It also depends on a number of third-party Atmosphere packages.
- anti:i18n for internationalisation (translation)
- momentjs:moment for internationalisation (date & time formatting)
- alanning:roles for role-based authorisation
- zimme:iron-router-auth for authentication- and authorisation-based routing
- huttonr:bootstrap3
for the newest highly configurable
less
version of Bootstrap- The Flatly design is provided by Bootswatch.
- useraccounts:bootstrap for the unified design of the login & register page
- sacha:spin for the loading spinner
- chuangbo:marked for GitHub Flavoured Markdown
- houston:admin for the MongoDB admin frontend
- perak:codemirror for syntax highlighting using CodeMirror
- meteorhacks:kadira for monitoring using Kadira (see Monitoring section)
- sergeyt:typeahead for autocomplete support using typeahead.js
- percolate:synced-cron for jobs similar to Cron (or scheduled tasks)
- meteorhacks:ssr provides Server Side Rendering capabilities in order to send emails
- pascoual:pdfkitx for generating PDF documents using PDFKit
To enforce a clean coding style, ESLint is used which depends on the following npm packages.
babel-eslint
eslint
eslint-config-airbnb-base
eslint-import-resolver-meteor
eslint-plugin-import
eslint-plugin-meteor
The application can easily be configured by modifying the files private/config.json
and private/secret.json
which are loaded in server/config.json
.
Both the eMail and Executor connections should be specified before using Progressor.
The tool Kadira can be used to monitor the application performance. More information can be found in the official academy page.
This application can be tested under heavy load using MeteorDown.
To run a load test, please follow these simple steps:
- Install the latest version of Node.js (if needed).
- Install the meteor-down npm package using
npm install --global meteor-down
. - Inside the directory
.meteor-down
, executemeteor-down <filename>
to run a specific load test.
There is also a Meteor package which is not currently used in this project.
The available test files (to use in place of <filename>
) are:
executor.js
The available tests are documented in our project documentation.
Thrift is a software framework for scalable cross-language services development.
It is used for the communication with the Executor component. The corresponding interface definition file is included in the Executor project.
A custom Meteor package called thrift
wraps the npm package thrift
(source).
The package documentation contains the instructions to update the package.
This application uses the included MongoDB engine.
The default / example documents are included in the application. To initialize and inspect the database, simply perform the following steps.
- Get yourself administrative rights.
- If you are the first user to register to an installation, you are automatically an administrator.
- If not, ask an administrator to add you to the administrator's group.
- Go the MongoDB admin page
<root>/admin
view, edit or remove documents and whole collections.