Skip to content

UstadMobile/NanoLRS

Repository files navigation

NanoLRS

This is a work in progress: The objective is to create an embeddable Experience API Learner Record Store (LRS) that can be used on desktop Java applications, Goolge Web Toolkit (GWT) applications (using RequestFactory), Android apps, and iOS apps using j2objc.

Entity Model

NanoLRS is designed to work with:

  • ORMLite: Runs on Android and J2SE (Server side / Desktop client side)
  • SharkORM: On iOS
  • Google Web Toolkit (GWT): Using RequestFactory

Any client side operation on GWT (which actually runs as transpiled Javascript) must be accept an interface with only getter and setter methods (RequestFactory takes care of sending data back/forth using deltas and supplying an interface implementation for the client). The models are therefor defined as interfaces with getter/setter methods. Entity classes for ORMLite and SharkORM are generated by the nanolrs-entitygen sub project.

Each entity has a Manager class. PersistenceManager must be able to return a manager on each platform. The manager class has abstract methods defining the query operations required for each entity. This is implemented once in the OrmLite manager class and once in the SharkORM manager class.

Testing

$ ./gradlew nanolrs-core:test nanolrs-core:jacocoTestReport connectedAndroidTest

About

Work in Progress: Objective is to create a cross platform embedded Experience API LRS server

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages