readium / readium-js-viewer

👁 ReadiumJS viewer: default web app for Readium.js library
BSD 3-Clause "New" or "Revised" License
549 stars 186 forks source link

Readium extensions comment, question, and proposal? #754

Closed webservant316 closed 2 years ago

webservant316 commented 2 years ago

Thank you for Readium. I use this project to play epubs on my webserver and it is great.

Not sure where is the best place to post this to start a discussion with the team, but I am wondering about the possibility of 1) ePub quizzes, 2) ePub license validation, 3) ePub page access control, and 4) Readium ePub generation. The reason for these questions is to consider whether the ePub standard could be a useful standard for online learning. Since huge amounts of hours are invested developing course material, if a course standard could be found that transcended the brand and version of the player it could be awesome for the online learning community.

1) ePub quizzes: Are HTML forms or quizzes included in the ePub standard definition? I see that Adobe Indesign allows for the creation of ePub quizzes. And if so does the standard also specify anything about communicating the quiz result back to the publisher? And if it not possible, maybe it is just as easy to direct the student to a website to take the quiz after reading the ePub. Or even simpler if the quiz is embeddded in the ePub perhaps the student just prints out their answers and mails or emails them in. Though in that case the grading would not be automatic.

2) ePub license validation: Is there an existing way to control access to an ePub once the user/ student has a copy of the document? Suppose the ePub included a license key unique per download and that embedded javascript checked a licensing server for the key before displaying the page content? Of course a hacker could reverse engineer that, but not most people. Or maybe there is a better idea? The Readium library player could also control this with authenticated access. But with that strategy the ePub is never in the hands of the student. The initial idea was using ePubs as a standard for online learning that could be viewed on the player of the students choice.

3) ePub page access control: Online learning courses often control the paging sequence for the student. For example, the student cannot jump ahead to the quiz or bypass unit quizzes and so must page through the content. Perhaps javascript could be used to control this as well? Though how would an ePub course remember the student's progress if they stopped their progress and resumed days later after the ePub viewer was closed and re-opened?

4) Has the Readium project considered offering an ePub generator? There are several generators out there, but none that I am aware that have also solved the elearning needed listed above in 1-3, I have developed some PHP code that generates ePubs for my own project and I would be glad to share the code. One idea I am mulling over is a github project that simply installs on a webserver and presents a form to upload a webpage document with various options that is then converted into an ePub. The converter could use H1 tags to build the outline or table of contents, look for certain semantics to build quizzes, and the same webserver could also be the license validation server.

Maybe ePubs are not the right choice for this. But I am sure the Readium project contributors could either confirm or cancel the value of the ideas above. The simple question I have in looking for an online learning format standard is if the ePub would have to play on my server on a particular player such as Readium to accomplish the above advanced features then what is the value of the ePub format? But if the ePub can be viewed on any player with the above features then a standard has been accomplished.

Jeff

danielweck commented 2 years ago

Hello Jeff, thank you for sharing your thoughts / ideas!

@llemeurfr would a Slack channel be a better place to discuss such generalities? I think that the topic would be of interest to the broader community (this specific ReadiumJS "viewer" GitHub repository is more oriented towards technical troubleshooting etc.)

webservant316 commented 2 years ago

Yes, I am interested in further discussion whether here or at Slack. It seems to me that the ePub format could play an important role in online learning in the future. Currently ePub easily handles the portable ebook problem. However, can the ePub standard and careful use of javascript also handle 1) licensed access, 2) reading progress control so student cannot jump ahead, and 3) quizzes with automatic grading and reporting results back to the publisher. Seems like these things would be possible if the ePub communicated with a server.

Eager to carry the discussion forward. Readium is an awesome ePub player and these simple elearning extensions could be huge.

llemeurfr commented 2 years ago

Hi Jeff, indeed, the Readium Slack "general" channel would be better that an issue in this highly specific repo. You're kindly invited on our Slack via http://readium-slack.herokuapp.com.