Technology we use

From Redazione
Jump to navigation Jump to search

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), however, given a set even arbitrary of the most prominent tools we use, the reader might explore the vast areas not covered by the following table both in extension and in depth.


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 Frontend part of the site, taking advantage of the server side rendering feature
Cheerio DOM manipulation from an html string We use it to perform some adjustments to the mediawiki html output before recording the last version of a page to be served through the APIs
Esprima ECMAScript parser We use it to securely parse the javascript object produced by the Frontend Index storing the structure of the tree
nodemw Node.js interface for the Mediawiki APIs We use it to call the mediawiki APIs from a nodejs 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 frontend 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 display code snippets on the Frontend site
jsonwebtoken Nodejs implementation of An implementation of JSON Web Tokens. We use it to signin a student accessing to 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.


... and more ! The list is in progress !