Skip to content

Update 07.11.2017

Florian Pusse edited this page Nov 7, 2017 · 2 revisions

Update 07.11.2017

  • Add/Update managed dependencies for sbt, PostgreSQL, Apache Commons, Commons IO, zip4j, jbcrypt, opencsv, deadbold
  • Update the underlaying Play Framework to the most recent version 2.6.x. Although this broke many parts of the application and required major rewriting taks, this was necessary to fix some bugs as well as being able to make use of the latest features and updates. Required changes include:
    • Make all request handlers of controllers non static
    • Use dependency injection (DI) instead of static class methods almost everywhere
    • Replace the "Global" class by services that can be injected
    • Replace the Play Crypto API with jbcrypt
    • Overwrite existing naming conventions in order to keep the ones we are used to
  • Remove the requirement to add/remove new Java classes when experiment types are created/deleted. Everything is now done more dynamically and with .html files instead of the .scala templates. Thus, all of this can now be done without changing the database scheme or without having to restart the server in production mode. Changes include:
    • Replace all experiment preview/rendering .scala.html templates by simple, plain .html files
    • Store an experiment type's fields as a JSON array instead of a Java class.
    • Store all experiment instance's/result's fields as one JSON entry instead of multiple columns.
  • Requirements, as defined in Mechanical Turk documentation, can now be easily set when an experiment is published. There is no need to code yourselve anymore.
  • Foundations for multi user management have been laid. It's not possible to register multiple users yet, but that will come soon. Thus, authorization is now handled by Deadbold instead.
  • A few new experiment types have been added.
  • Removed the Linking experiments for now as they are too different from the rest and are not compatible with the changes. They need further updates.