Привет. Я в своё время тоже озаботился этим вопросом и написал свой велосипед: Edustor. Вкратце, я использую специально сгенерированные листы:
https://edustor.ru/pdf. После "использования" эти листы связываются с нужными темами при помощи мобильного приложения (сканирование qr-кода), а затем отправляются в протяжный сканер (двухсторонний, с автоподачей, стоит около 15к) и выгружаются в edustor.
Ну а потом до всего этого можно доступиться в виде PDF через мобильное приложение (android, с полноценным офлайном) или веб.
Сам проект пока в довольно ранней альфе, части редкоиспользуемых нет, сервер монолитный и все дела. Но я юзаю уже полгода, жить можно.
Стек - Kotlin, Spring, Mongo. До текущего момента писал все в одиночку, поэтому документации практически нет. Если кому-то интересно, можете написать мне в телеграм (@wutiarn), расскажу в деталях. Ну и контрибьютеры очень приветствуются.
Сорцы:
https://gitlab.com/edustor