Skip to content

Latest commit

 

History

History
136 lines (101 loc) · 6.88 KB

MeteorConfig.md

File metadata and controls

136 lines (101 loc) · 6.88 KB

Progressor - Additional Meteor Configuration Options

Dependencies

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.

  1. meteor-base
  2. mobile-experience
  3. mongo
  4. blaze-html-templates
  5. session
  6. jquery
  7. tracker
  8. shell-server
  9. standard-minifier-css
  10. standard-minifier-js
  11. es5-shim
  12. ecmascript

In addition, the following officialy Meteor-provided Atmosphere packages have also been added.

  1. random
  2. check
  3. audit-argument-checks
  4. reactive-var
  5. reactive-dict
  6. iron:router
  7. accounts-password
  8. underscore
  9. less
  10. email

As advised, the following npm paackage has been added to improve performance.

  1. bcrypt

It also depends on a number of third-party Atmosphere packages.

  1. anti:i18n for internationalisation (translation)
  2. momentjs:moment for internationalisation (date & time formatting)
  3. alanning:roles for role-based authorisation
  4. zimme:iron-router-auth for authentication- and authorisation-based routing
  5. huttonr:bootstrap3 for the newest highly configurable less version of Bootstrap
  6. useraccounts:bootstrap for the unified design of the login & register page
  7. sacha:spin for the loading spinner
  8. chuangbo:marked for GitHub Flavoured Markdown
  9. houston:admin for the MongoDB admin frontend
  10. perak:codemirror for syntax highlighting using CodeMirror
  11. meteorhacks:kadira for monitoring using Kadira (see Monitoring section)
  12. sergeyt:typeahead for autocomplete support using typeahead.js
  13. percolate:synced-cron for jobs similar to Cron (or scheduled tasks)
  14. meteorhacks:ssr provides Server Side Rendering capabilities in order to send emails
  15. pascoual:pdfkitx for generating PDF documents using PDFKit

To enforce a clean coding style, ESLint is used which depends on the following npm packages.

  1. babel-eslint
  2. eslint
  3. eslint-config-airbnb-base
  4. eslint-import-resolver-meteor
  5. eslint-plugin-import
  6. eslint-plugin-meteor

Configuration

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.

Monitoring

The tool Kadira can be used to monitor the application performance. More information can be found in the official academy page.

Load Testing

This application can be tested under heavy load using MeteorDown.

Instructions

To run a load test, please follow these simple steps:

  1. Install the latest version of Node.js (if needed).
  2. Install the meteor-down npm package using npm install --global meteor-down.
  3. Inside the directory .meteor-down, execute meteor-down <filename> to run a specific load test.

There is also a Meteor package which is not currently used in this project.

Available Tests

The available test files (to use in place of <filename>) are:

  • executor.js

The available tests are documented in our project documentation.

Apache Thrift

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.

MongoDB

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.

  1. 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.
  2. Go the MongoDB admin page <root>/admin view, edit or remove documents and whole collections.