lichess-org / api

Lichess API documentation and examples
https://lichess.org/api
GNU Affero General Public License v3.0
429 stars 142 forks source link

API LTI compliance or improved result handshaking? #47

Closed chairCIC closed 3 years ago

chairCIC commented 4 years ago

Hi,

I'm the Chair of the Chess Institute of Canada. Because of the pandemic, we've had to rapidly swap all our in-class teaching in elementary schools to online. So we've obviously looking at LiChess, but we've also have been looking at full blown Learning Management Systems [LMS] like Moodle and Sakai.

Most of these packages have Learning Tools Interoperability [LTI] so lower level learning tools [like LiChess] can handshake results back. I think LTI is a complex model, since they take great steps via encryption to avoid hacking and cheating on results. [All the folks that take the online Java course always get 100% oddly...]

The current LiChess API is pretty good, but we'd be looking for results like did the student complete the LiChess activity, and how long they took to do so. Some of the functionality is already in the API, it's pretty close. Rather than a fullblown LTI implementation, I'd just be happy with some more handshaking. [I ain't worried about cheating frankly!]

i wish I knew more Java to help. My knowledge is beyond ancient, mainframes, UNIX, assembler, C.

LiChess is fabulous. Do think hooking it to LMS is the way to go. I need something we can scale to 800 schools or more. When you are teaching 50,000 kindergarten to grade 4 kids asynchronously, you need a lot of automation!

with thanks to the community,

Michael Sutton Chair CIC

ornicar commented 4 years ago

What do you mean by "handshaking"?

Which endpoints do you need created or extended?

chairCIC commented 4 years ago

Hi Thibault,

Thanks for getting back to me. My knowledge of Java is poor. We were looking for some kind of functionality if a puzzle [or perhaps a study] object was invoked via the API, that some kind of token or tokens could be returned that indicated a) was the object completed successfully b) how long did that solution or study take? The idea with an LMS [Learning Management System] you often have asynchronous teaching [what that means is there is no "live: or interactive human teacher watching what you do] so the student would do some kind of Chess lab, the LMS would evaluate their performance, and the human teacher can eventually look at the results and see how well or poorly they are doing. With the pandemic and children having to be in small groups or pods we get into a teacher shortage rapidly. So anything we can do online and evaluate in an automated fashion via software really, really helps.

The formal convention is LTI [or Learning Tools Interoperability] but that seems a complex standard designed to encrypt the traffic and deter cheating. I'd just be happy if the API returned a few tokens to evaluate. [JSON tokens or strings? Is that the Java convention for parameter passing?]

with thanks,

Michael

On Tue, Aug 18, 2020 at 6:27 PM Thibault Duplessis notifications@github.com wrote:

What do you mean by "handshaking"?

Which endpoints do you need created or extended?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lichess-org/api/issues/47#issuecomment-675750760, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQU7IZTD6ALTTPUFCS7C3QDSBL56BANCNFSM4QDSYRYA .

ornicar commented 4 years ago

This is confusing. Java has nothing to do with an HTTP API. HTTP and JSON are language agnostic.

It sounds like you want an API to know whether a user has played a puzzle? You can get the puzzle activity of a player https://lichess.org/api#operation/apiUserPuzzleActivity, which naturally requires OAuth authentication or at least a personal OAuth token.