Skip to content

UstadMobile/NanoLRS

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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