Skip to content
Joshua Monson edited this page Aug 3, 2013 · 2 revisions

Ayamel is built on an extended MVC pattern. In addition to the models, views, and controllers, it has data access and service layers. By having a service layer much of the logic can be extracted from the controllers which leaves them less cluttered.

OAuth 1.0a Message Signing

Several external services we use, such as LTI and PlayGraph, require OAuth 1.0a signatures. However there is no really good library which does this correctly in Java or Scala, so I created my own. See my blog post about this.

The OAuth library is under app/service/joshmonson/oauth.

File uploading

Ayamel requires a significant amount of file creation and saving. Right now we are using Amazon S3 for storage, but there is potential to use other services. The file uploading system consists of several sources.

  • FileUploader.scala - This is the interface for file uploading. It defines a generic upload engine trait which can be extended for any kind of storage service.
  • S3Uploader.scala - This extends the UploadEngine trait for uploading to Amazon S3.

Other services

  • AdditionalDocumentAdder.scala
  • ContentManagement.scala
  • DocumentPermissionChecker.scala
  • EmailTools.scala
  • ExcelWriter.scala
  • HashTools.scala
  • ImageTools.scala
  • LMSAuth.scala
  • MobileDetection.scala
  • ResourceHelper.scala
  • SerializationTools.scala
  • TimeTools.scala
  • VideoTools.scala
Clone this wiki locally