Support tin can as one content type in learnexa and tincan content should be able to store records in Learnexa LRS and any other LRS which support tincan api.
Models -
TincanPackage - TincanPackage is extended from Document(which is extended from Asset) so that all the physically uploaded files would go to assets table and we resuse most of the code. We overwrite the paperclip settings and other methods for TincanPackage to suit the purpose.
TincanPackageDetail - This has the information of tincan content which is additional to any other asset. At present only manifest is saved here.
Tables -
Table name - tincan_package_deatils
This table stores the additional information of any tincan package which is not present for assets. At present we save manifest here.
| Column_name | type | Description |
|---|---|---|
| id | integer | primary key |
| tincan_package_id | integer | Id of tincan package to which this belongs to |
| manifest | longtext | The parsed manifest object which is used as the course structure |
* Note - The manifest column contains the TincanPackage::Manifest object which is generated after parsing the PIF.
Table name - tincan_sessions
This table saves the runtime information of any user who played this content. We track this based on enrollment_id because one tincan content may be present in more than one course. So, we need both course_id and the user_id when we need to track the progress of a user on a tincan package. Enrollment has both of these details. The number of attempts is stored in progress_scores table.
| Column_name | type | Description |
|---|---|---|
| id | integer | primary key |
| tincan_package_id | integer | foreign key to tincan packages table. The tincan package id corresponding to which this session is created |
| enrollment_id | integer | foreign key to the users table. User who has launched this package. |
| runtime_data | integer | not used as of now. |
| progress_score | integer | |
| score | integer | not used as of now. |
| created_at | date_time | created date |
| updated_at | date_time | updated date |
1) Book marking support (https://tracker.exphosted.com/view.php?id=5463) (Completed)
2) Oauth End points - Currently Basic authentication (2 legged oauth is supported). We may not need oAuth End points in the API at all as basic authentication works well for the API. In case needed in the future we can support oauth end points in the API.