Technology we use link
Jump to navigation
Jump to search
Line 73: | Line 73: | ||
|client-side open-source JavaScript database inspired by [https://couchdb.apache.org/ CouchDB] | |client-side open-source JavaScript database inspired by [https://couchdb.apache.org/ CouchDB] | ||
|We use it to store all the organization or documentation's pages on the client, to minimize loading data from the server and to allow offline navigation | |We use it to store all the organization or documentation's pages on the client, to minimize loading data from the server and to allow offline navigation | ||
+ | |- | ||
+ | |[https://github.com/jackocnr/intl-tel-input International Telephone Input] | ||
+ | |"JavaScript plugin for entering and validating international telephone numbers" | ||
+ | |We use it to assist the entry of international telephone numbers in some tables of private wikis | ||
|} | |} | ||
Revision as of 12:24, 22 August 2020
Here is a list of the tools we use to make this platform work. Of course each of them depends in turn by other tools (for instance Quasar Framework depends on Vue.js, and Vue.js is in turn composed by several components, like the router and vuex, a "state management pattern"), however, given a set even arbitrary of the most prominent tools we use, the reader might explore on his or her own both in extension and in depth the vast areas not covered by the following table.
Currently used
software | description | use |
---|---|---|
Mediawiki 1.34 | The collaboration and documentation platform which inspired and powers Wikipedia. | We use it for the back-end side of this site, in order to ensure collaborative creation of quality contents. |
Mediawiki extensions | Plugins extending the set of features of Mediawiki. | Some of the most prominent extensions include: Page forms, Semantic Mediawiki, Visual editor, Ms Upload, MultimediaViewer, and more: we are also using a custom extension created by us! |
Quasar framework | open-source Vue.js based framework for building apps | We use it for all the Front-end part of the site, taking advantage of its server side rendering feature and beautifully crafted components |
Cheerio | DOM manipulation from an html string | We use it to perform some adjustments to the mediawiki html output before recording the latest version of a page to be served through the APIs |
nodemw | Node.js interface for the Mediawiki APIs | We use it to call the mediawiki APIs from a Node.js script to retrieve and structure wiki pages before serving them through the APIs |
detectlanguage | Language identification JSON webservice | We use it to determine the language of a wiki page, in order to filter them by language in the front-end site, or to perform hyphenation |
Detecting languages (Google Cloud Translation) | Language detect using Google Cloud Translation APIs | As above, we use both of them concurrently |
Knex | Query builder for Node.js | We use it to assemble mysql queries in our Node.js scripts |
Email templates | A wrapper for sending email using template engines (like PUG) and transports (like Nodemailer) | We use it to send email using PUG templates and Node mailer-Sendgrid transport |
Prism | Javascript syntax highlighter | We use it to format code snippets on the Front-end site |
jsonwebtoken | Node.js implementation of An implementation of JSON Web Tokens. | We use it to authenticate a student accessing his/her Classes |
fancytree | Javascript library providing interactive trees based on hierarchical data structures | We use it to display a structured and editable table of contents of a given set of wiki pages to be used as navigation panel in the related front-end site. |
Hyphenopoly | "Hyphenation for node and Polyfill for client-side hyphenation." | We use it to hyphenate the organization or documentation's pages based on the detected language of each wiki page. Especially important on mobile devices combined with justified columns. |
pouchdb | client-side open-source JavaScript database inspired by CouchDB | We use it to store all the organization or documentation's pages on the client, to minimize loading data from the server and to allow offline navigation |
International Telephone Input | "JavaScript plugin for entering and validating international telephone numbers" | We use it to assist the entry of international telephone numbers in some tables of private wikis |
Previously used
software | description | use | notes |
---|---|---|---|
Esprima | ECMAScript parser | We use it to securely parse the javascript object produced by the Frontend Index (the link might be broken) storing the structure of the tree | The functioning of the the former "Frontend Index" (now renamed "Table of contents") has been reviewed. Now the tree object representing the table of contents is saved as a semantic property directly by a form, rather than by a script invoking the Mediawiki javascript api, in a process technically virtuous but not the simplest. |
... and more ! The list is in progress !