Technology we use

From Redazione
Jump to navigation Jump to search
Line 2: Line 2:
 
Here is a list of the tools we use to make this platform work.
 
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
 
Of course each of them depends in turn by other tools (for instance
Quasar Framework depends on Vuejs, and Vuejs is in turn composed
+
[https://quasar.dev/ Quasar Framework] depends on [https://vuejs.org/ Vue.js], and Vue.js is in turn composed
 
by several components), however, given a set even arbitrary of
 
by several components), however, given a set even arbitrary of
 
the most prominent tools we use, the reader might explore them
 
the most prominent tools we use, the reader might explore them
Line 21: Line 21:
 
|-
 
|-
 
|Mediawiki 1.34
 
|Mediawiki 1.34
|The collaboration and documentation platform which inspired and powers Wikipedia.
+
|The collaboration and documentation platform which inspired and powers [https://www.wikipedia.org/ Wikipedia].
 
|We use it for the back-end side of this site, in order to ensure collaborative creation of quality contents.
 
|We use it for the back-end side of this site, in order to ensure collaborative creation of quality contents.
 
|https://www.mediawiki.org/wiki/MediaWiki
 
|https://www.mediawiki.org/wiki/MediaWiki
 
|-
 
|-
 
|Mediawiki extensions
 
|Mediawiki extensions
|Plugins extending the set of features of Mediawiki.  
+
|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!
+
|Some of the most prominent extensions include: [https://www.mediawiki.org/wiki/Extension:Page_Forms Page forms], [https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki Semantic Mediawiki], [https://www.mediawiki.org/wiki/Extension:VisualEditor Visual editor], [https://www.mediawiki.org/wiki/Extension:MsUpload Ms Upload], [https://www.mediawiki.org/wiki/Extension:MultimediaViewer MultimediaViewer], and more: we are also using a custom extension created by us!
 
|https://culturaitaliana.org/wiki/Special:Version
 
|https://culturaitaliana.org/wiki/Special:Version
 
|-
 
|-
 
|Quasar framework
 
|Quasar framework
|open-source Vue.JS based framework for building apps
+
|open-source [https://vuejs.org/ 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
+
|We use it for all the [https://culturaitaliana.org/ Frontend part] of the site, taking advantage of the server side rendering feature
 
|https://quasar.dev/
 
|https://quasar.dev/
 
|-
 
|-
Line 42: Line 42:
 
|Esprima
 
|Esprima
 
|ECMAScript parser
 
|ECMAScript parser
|We use it to securely parse the javascript object produced by the Frontend Index storing the structure of the tree
+
|We use it to securely parse the javascript object produced by the [https://culturaitaliana.org/Frontend_Index Frontend Index] storing the structure of the tree
 
|https://github.com/jquery/esprima
 
|https://github.com/jquery/esprima
 
|-
 
|-
 
|nodemw
 
|nodemw
|Nodejs interface for the Mediawiki APIs
+
|[https://nodejs.org/en/ 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
+
|We use it to call the [https://culturaitaliana.org/w/api.php mediawiki APIs] from a nodejs script to retrieve and structure wiki pages before serving them through the APIs
 
|https://github.com/macbre/nodemw
 
|https://github.com/macbre/nodemw
 
|-
 
|-
Line 61: Line 61:
 
|-
 
|-
 
|Knex
 
|Knex
|Query builder for nodejs
+
|Query builder for Node.js
|We use it to assemble mysql queries in our nodejs scripts
+
|We use it to assemble [https://www.mysql.com/ mysql] queries in our Node.js scripts
 
|http://knexjs.org/
 
|http://knexjs.org/
 
|-
 
|-
 
|Email templates
 
|Email templates
|A wrapper for sending email using template engines (like PUG) and transports (like Nodemailer)
+
|A wrapper for sending email using template engines (like [https://pugjs.org/api/getting-started.html PUG]) and transports (like [https://nodemailer.com/about/ Nodemailer])
|We use it to send email using PUG templates and Node mailer-Sendgrid transport
+
|We use it to send email using PUG templates and Node mailer-[https://www.npmjs.com/package/nodemailer-sendgrid-transport Sendgrid transport]
 
|https://github.com/forwardemail/email-templates
 
|https://github.com/forwardemail/email-templates
 
|-
 
|-
 
|Prism
 
|Prism
 
|Javascript syntax highlighter
 
|Javascript syntax highlighter
|We use it to display code snippets on the Frontend site
+
|We use it to display code snippets on the [https://culturaitaliana.org/How_it_works Frontend site]
 
|https://prismjs.com/
 
|https://prismjs.com/
 
|-
 
|-
 
|jsonwebtoken
 
|jsonwebtoken
|Nodejs implementation of An implementation of JSON Web Tokens.
+
|Nodejs implementation of An implementation of [https://jwt.io/ JSON Web Tokens].
|We use it to signin a student accessing to Classes
+
|We use it to signin a student accessing to [https://culturaitaliana.org/classes Classes]
 
|https://www.npmjs.com/package/jsonwebtoken
 
|https://www.npmjs.com/package/jsonwebtoken
 
|-
 
|-

Revision as of 11:10, 28 June 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), however, given a set even arbitrary of the most prominent tools we use, the reader might explore them further on his own and therefore retrieving what is missing.


software description use logo and url
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. https://www.mediawiki.org/wiki/MediaWiki
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! https://culturaitaliana.org/wiki/Special:Version
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 https://quasar.dev/
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 https://github.com/cheeriojs/cheerio#readme
Esprima ECMAScript parser We use it to securely parse the javascript object produced by the Frontend Index storing the structure of the tree https://github.com/jquery/esprima
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 https://github.com/macbre/nodemw
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 https://detectlanguage.com/
Detecting languages (Google Cloud Translation) Language detect using Google Cloud Translation APIs As above, we use both of them concurrently https://cloud.google.com/translate/docs/basic/detecting-language
Knex Query builder for Node.js We use it to assemble mysql queries in our Node.js scripts http://knexjs.org/
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 https://github.com/forwardemail/email-templates
Prism Javascript syntax highlighter We use it to display code snippets on the Frontend site https://prismjs.com/
jsonwebtoken Nodejs implementation of An implementation of JSON Web Tokens. We use it to signin a student accessing to Classes https://www.npmjs.com/package/jsonwebtoken
jsTree Jquery plugin, that provides interactive trees We use it to display an interactive tree of the structured index created by our script from a given set of wiki pages https://www.jstree.com/
... and more ! The list is in progress !