The application was initially built on Azure after which it was moved to AWS. The software packages used are all the same as that referred to at MMLC-Azure. The infrastructure now has changed to AWS and the application as a whole has been dockerized.
Summarizing the notes from the link above :
We have 2 components, the Web application and the API.
- API : Built on Sails. This generates the specified modalities for a given equation. It utilizes MathJax and the Speech Rules Engine. This then stores the data in a MongoDB database.
- Web Application : This is built using Backbone and makes use of the API for generating the different modalities.
MongoDB - 2.6.11 (latest : 3.4 released Nov. 29,2016) Ref:https://docs.mongodb.com/manual/release-notes/3.4/
Node - 4 (latest : 6.9.5 released Jan. 31,2017)
Sails - 0.11.5 (latest : 1.1.4 released Dec. 09,2016) Ref:https://libraries.io/npm/sails.io.js/1.1.4
Backbone - 1.1.2 (latest : 1.3.3 released April 5,2016) Ref:https://github.com/jashkenas/backbone/releases
MathJax node - 0.4 (latest : 0.5.2 released Nov 30,2016) Ref:https://github.com/mathjax/MathJax-node/releases
Sails-mongo - 0.10.9 (latest : 0.12.2 released Dec. 09,2016) Ref:https://github.com/balderdashy/sails-mongo/releases
Sails-disk - 0.10.0 (latest : 0.10.10 released June 06,2016) Ref:https://github.com/balderdashy/sails-disk/releases
- Server crashing sometimes when a very large file is uploaded for the HTML5 upload.
- Server throwing a 503 error stating that the "Backend is at capacity". This happens on a single equation conversion. And it seems to work fine after a while.
- While trying to do the Node upgrade to 6.9.4, we saw sails-mongo errors. This lead to the application eternally crashing and not being able to come back up. For now we have reverted back to Node 4.
- Observed that there maybe an issue with the code base in live vs staging. Entering invalid mathml tags on live does not throw any error but throws the "Error converting equation" error on staging. No changes have been made to that piece of code , apart from adding in log statements.
- Upgrade node
- Upgrade MathJax