# Tools and libraries

This chapter is about tools, libraries and technologies that are used in AsTeRICS Grid project:

  1. Tools
  2. Javascript libaries

Back to Overview

# Tools

This section is about tools that are used for development, dependency management and releasing.

# Node package manager (npm)

The node package manager (npm) (opens new window) is used for managing Javascript dependencies and running various tasks related to the project. The npm configuration file is package.json (opens new window).

# npm dependencies

The configuration file package.json (opens new window) includes the key dependencies which include dependencies that are used in order to run AsTeRICS Grid:

  • @klues/couch-auth (opens new window): framework providing user management in connection to CouchDB (opens new window), the database backend used by AsTeRICS Grid. Using fork of original couch-auth (opens new window) in order to fix session creation conflicts (opens new window) - already merged, so we could again use original couch-auth
  • cors (opens new window): CORS handler for HTTP requests, used by couch-auth
  • dotenv-flow: used by superlogin/start.js
  • express: used by superlogin/start.js
  • file-saver: used for download backup to file feature
  • hls.js: used for playback of special audio streams for web-radio and podcast features
  • html2canvas: used for creating thumbnail screenshots of grids
  • interactjs: used by vue-css-grid-layout (opens new window) library (this library is not used as npm dependency, but the code is duplicated in folder src/vue-components/grid-layout)
  • jspdf: used by PDF export feature
  • jszip: used for importing/exporting OBZ files from Open Board Format (opens new window)
  • matrix-encrypt-attachment: used for Matrix (opens new window) messenger integration
  • matrix-js-sdk: used for Matrix (opens new window) messenger integration
  • morgan (opens new window): logger for HTTP requests, used by couch-auth
  • n-ary-huffman: used for Huffman input method
  • navigo: used for in-app routing, see router.js
  • pouchdb: library for connecting with external CouchDB - the npm dependency is used by superlogin/start.js, the app uses the direct import in index.html, see below.
  • predictionary: library for self-learning dictionary used for keyboard inputs, also see dictionaries at app/dictionaries
  • superlogin-client (opens new window): Javascript client for a couch-auth instance running on a server
  • vue (opens new window): framework for building the user interface
  • vue-i18n: internationalization library for Vue.js
  • vue-multiselect: multiselect component, used for selecting tags in word forms feature

Also see other directly imported Javascript libraries.

# npm dev-dependencies

The configuration file package.json (opens new window) includes the key dev-dependencies which include dependencies that are used for development of AsTeRICS Grid. These are the most important ones:

# npm scripts

A description of available npm scripts is available in README.md (opens new window).

# Webpack

Webpack (opens new window) is used in order to bundling the Javascript sources to a single and minified bundle file. The configuration file for webpack is webpack.config.js (opens new window).

# Javascript libraries

This section is about Javascript libraries that are used within the AsTeRICS Grid project and are imported directly in index.html and not via npm. All directly imported libraries are located at app/lib/ (opens new window).

These are the Javascript libraries that are directly imported:

← Previous Chapter Next Chapter →

Back to Overview