Bower and Grunt have been used for development of the first version of the game, but now we use only Gulp.
The node_modules directory in the main directory is actually not important.
They are not used in the client-server communication using the API, but only for the CLI of the server that can be used to manually pass commands to the server, which is not an important feature.
They are implemented in the files of the directory plugins. The name of the API call is the same as the name of the file in which it is implemented.
MACE is integrated in the server. There is a command "mace" which turns on this functionality (it’s not turned on by default!). It starts a thread in which arguments are periodically (i.e. each 4 hours at the moment) checked if they are ready to be labeled (i.e. when at least 4 votes exist). What happens behind the scenes is that the arguments to label are collected, all the data necessary for MACE is written into a file, then MACE is called and writes the result into another file, and the server reads the results and writes them into the database.
The fallacyId is the fallacy type that a user had to write during a Compose Fallacy round, whereas out_fallacyType is a gold label and arguments with this field are used for the first levels of the Green World.
Technically there is no difference because they are both implemented as standard controllers of angular.js
BaasBox was used for the first version of the app and then it was decided not to use it anymore. To reduce the number of lines of code to be changed, HTTP requests are still done in the BaasBox class.