У вас есть несколько ключевых областей, с которыми нужно иметь дело -
- API среды выполнения SCORM (javascript) для SCORM 1.2 или SCORM 2004. Они основаны на сотни страниц официальных документов от ADL. Вы можете взломать что-нибудь вместе, но я буду прямо здесь, потребуется solid 12-24 месяца, чтобы сделать это с нуля. По сути, вы строите API на основе официальных документов.
- У вас есть объект CMI для управления. Это попытка студента. Все вещи в SCORM являются строками, и Runtime API управляет законностью этих строк. LMS отвечает за подготовку чистой попытки студента и сохранение попытки, когда студент приостанавливает свою сессию. Это еще одна обширная область с пороговыми значениями (успех, завершение), таймаутами и типами, которыми необходимо управлять.
Angular потребуется, чтобы TypeScript был удовлетворен для предоставления глобальных API-интерфейсов, подобных этому, поскольку это то, к чему обычно подключался ваш SCO в IFRAME, в окне, на вкладке или во всплывающем окне.
Вы захотите сохранить последовательность подготовки попытки учащегося (чистую или предыдущую), затем загрузите SCO, разрешите он подключается к вашему API времени выполнения на основе этой версии схемы imsmanifest. xml (SCORM 1.2 или 2004), все учащиеся взаимодействуют с контентом, сохраняют попытки учащихся на основе событий, которые вы можете настроить.
Простые термины SCORM 2004 / 1.2
- Initialize / LMSInitialize - это будет вызывать SCO, активы не будут
- GetValue / LMSGetValue - данные, полученные SCO (cmi.x)
- SetValue / LMSSetValue - данные, установленные SCO (cmi.x, 'value')
- Commit / LMSCommit - сохранение данных об ученике в бэкэнд
- Terminate / LMSTerminate - se более подробно, нет дальнейшего взаимодействия со SCORM
Вы можете купить выход из этого положения, но вам нужно поискать варианты SCORM, и даже у этого сайта были большие ресурсы. Просто используйте поисковый термин SCORM, переключитесь на самый старый или самый новый и просмотрите многие вопросы, которые уже задавались ранее. SCORM существует уже почти 20 лет, поэтому в этом вопросе нет недостатка.
Я бы не стал отговаривать кого-либо, кто захочет закодировать это с нуля. Я сделал это, и это полезно, когда вы работаете.
Удачи