Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remote Calculation of Items #723

Open
4 tasks done
georgmaisser opened this issue Oct 25, 2024 · 1 comment
Open
4 tasks done

Remote Calculation of Items #723

georgmaisser opened this issue Oct 25, 2024 · 1 comment
Assignees
Labels

Comments

@georgmaisser
Copy link
Contributor

georgmaisser commented Oct 25, 2024

The goal of the Task is that one Moodle Instance can do the calculations for connected instances.
There are several steps involved.
The initial setup process is not part of this and is done via the wb_installer. We start from the assumpution that two separately hosted Moodle instances both have the same Alise setup with the same scales and testitems.

  • Create Interface on and host to allow some configurations (which scale to sync, are there unsynced items in scale, warning from changing testitems that are synched)
  • Create Webservice on Host to allow client to fetch initial item params
  • Create Webservice on Host to allow client to post quiz results
  • Do the real calculation by merging and matching itemparams via label (or ids?)
@eynimeni eynimeni added the ALISE label Oct 25, 2024
@ralferlebach ralferlebach changed the title Remote Calculation of Tasks Remote Calculation of Items Nov 7, 2024
@davidszkiba
Copy link
Contributor

davidszkiba commented Nov 8, 2024

Allgemeiner Vorgang

Hochschule A hat zB kleine samples -> Berechnung zahlt sich nicht aus
Hochschule Z (zentrale Berechnungsinstanz): bekokmmt Samples von vielen anderen Unis -> große sample size. Kann berechnen -> verschickt die berechneten Parameter danach wieder an verknüpfte Unis bzw liefert sie, wenn die danach fragen.

Initialisierung

Client (Hochschule A) bekommt recipe, wo wichtige Daten enthalten sind:

  • URL inkl Token, um auf Hochschule Z zuzugreifen
  • Evtl: User Prefix Number (1 Mio, 2 Mio etc), die zur user-ID gezählt wird.

Mapping

"Client" schickt per HTTP POST Hash von jeder Frage zusammen mit Antwort-Daten an Z
Jede Fragebeantwortung in eigener Zeile in neuer DB Tabelle. Inkl Zeit etc. Hier die Möglichkeit mitdenken, dass in Zukunft evtl die Antworten auf unterschiedliche Arten klassifiziert werden können (zB: nur user in Kurs A).

Authentication

-> moodle web-services verwenden für authentication:

  • webservice: nur für authentifizierte user (man braucht user auf "host")
  • user bekommt ein token auf target platform
  • client verwendet URL (mit token) um aufs Webservice zuzugreifen

davidszkiba added a commit that referenced this issue Nov 8, 2024
This is a stub for the webservice that accepts response data from a client.
davidszkiba added a commit that referenced this issue Nov 8, 2024
For testing, I created a site at URL
/local/catquiz/client/submit_responses.php where submitting data can be
easily tested.
There are now basic plugin settings:
 - central_host: the address of the central host
 - central_token: the token used to access the central host
 - central_scale: The scale that should be synced. For now, this is a
   basic input field that expects an integer, but this should be changed
   in the future.

There are database tables to store information about send requests and
mappings of questions.

There is now also a question mapper that calculates a hash from question
properties - this way we will be able to map questions based on their
properties (text, answers, etc).
davidszkiba added a commit that referenced this issue Nov 11, 2024
Instead of grouping answers to questions by users, they are now grouped
by attempts.
davidszkiba added a commit that referenced this issue Nov 12, 2024
This is a stub for the webservice that accepts response data from a client.
davidszkiba added a commit that referenced this issue Nov 12, 2024
For testing, I created a site at URL
/local/catquiz/client/submit_responses.php where submitting data can be
easily tested.
There are now basic plugin settings:
 - central_host: the address of the central host
 - central_token: the token used to access the central host
 - central_scale: The scale that should be synced. For now, this is a
   basic input field that expects an integer, but this should be changed
   in the future.

There are database tables to store information about send requests and
mappings of questions.

There is now also a question mapper that calculates a hash from question
properties - this way we will be able to map questions based on their
properties (text, answers, etc).
davidszkiba added a commit that referenced this issue Nov 12, 2024
davidszkiba added a commit that referenced this issue Nov 18, 2024
This is a stub for the webservice that accepts response data from a client.
davidszkiba added a commit that referenced this issue Nov 18, 2024
For testing, I created a site at URL
/local/catquiz/client/submit_responses.php where submitting data can be
easily tested.
There are now basic plugin settings:
 - central_host: the address of the central host
 - central_token: the token used to access the central host
 - central_scale: The scale that should be synced. For now, this is a
   basic input field that expects an integer, but this should be changed
   in the future.

There are database tables to store information about send requests and
mappings of questions.

There is now also a question mapper that calculates a hash from question
properties - this way we will be able to map questions based on their
properties (text, answers, etc).
davidszkiba added a commit that referenced this issue Nov 18, 2024
davidszkiba added a commit that referenced this issue Nov 18, 2024
Changes local_catquiz_question_hashmap to local_catquiz_qhashmap
davidszkiba added a commit that referenced this issue Nov 18, 2024
Changes local_catquiz_question_hashmap to local_catquiz_qhashmap
davidszkiba added a commit that referenced this issue Nov 18, 2024
Changes local_catquiz_question_hashmap to local_catquiz_qhashmap
davidszkiba added a commit that referenced this issue Nov 18, 2024
davidszkiba added a commit that referenced this issue Nov 18, 2024
This changes the data to be returned and also
creates a simple page fetch_parameters.php for testing during
development.
davidszkiba added a commit that referenced this issue Nov 18, 2024
davidszkiba added a commit that referenced this issue Nov 18, 2024
Changes local_catquiz_question_hashmap to local_catquiz_qhashmap
davidszkiba added a commit that referenced this issue Nov 19, 2024
davidszkiba added a commit that referenced this issue Nov 19, 2024
davidszkiba added a commit that referenced this issue Nov 19, 2024
davidszkiba added a commit that referenced this issue Nov 19, 2024
This adds a "Sync" button to the scale detail view. It will sync all
parameters associated with that scale or any of its subscales from the
central instance.
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
The matrix of responses is not correctly pruned to filter out items with
all-correct or all-incorrect responses. The same is done to filter out
persons or attempt with all-correct or all-incorrect answers.
This means the expected item parameters in the characterization test had
to be updated, because we previously didn't prune iteratively.
davidszkiba added a commit that referenced this issue Jan 27, 2025
The host has to be given with a scheme and PARAM_HOST would not allow that.
So this is changed to PARAM_TEXT here.
davidszkiba added a commit that referenced this issue Jan 27, 2025
The index is a single number, not an array
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
When returning parameters via the distribute parameters webservice,
include the `guessing` parameter with a default value of 0.0.
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
The settings to enable/disable syncronization with a central instance
and to mark an instance as "central" have been lost during a rebase.
This commit is re-adding them.
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
The scale synchronization expects scales to have labels. While we
already set a label when creating a new scale, this adds an upgrade step
that will update existing scales.
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 27, 2025
davidszkiba added a commit that referenced this issue Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants