You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wallenstein61 opened this issue
Jun 18, 2021
· 0 comments
Assignees
Labels
corePull requests that affect the corresponding moduleexercisePull requests that affect the corresponding modulefeatureirisPull requests that affect the corresponding moduleprogrammingPull requests that affect the corresponding moduletextPull requests that affect the corresponding module
The CodeAbility Project currently operates and maintains a platform for sharing (among other content) programming exercises between interested parties. It is open to the programming teaching community.
CodeAbility also operates an Artemis instance that serves its 6 Austrian partners as a platform for programming teaching.
Artemis is currently a major source of programming exercises, as well as a potential target for re-using programming exercises.
However the exchange between separated instances of Artemis is only supported by a manual exchange of zipped exercises files.
We have implemented a REST-based connector interface in the sharing platform to import and export exercises between interested applications.
This connector interface allows among other features the import and export of programming exercises in an appropriate format.
We have already implemented an prototype integration of Artemis with the sharing platform based on the connector interface in order to allow for the smooth sharing of exercises.
Describe the solution you'd like
Base for the exchange is the zip-file download as currently supported by artemis.
Technically the zip-file is uncompressed and stored in the sharing platform git repository.
Profile definition
Artemis will be extended by an extra profile "sharing", that enables the connectivity with the Sharing Platform.
Configuration
The participating instance of Artemis has to exchange in advance a shared secret (API-key) with the maintainers of the sharing platform in order to enable the access to the sharing plattform.
In application-sharing.yml the following configurations have to be included:
Both could also be configured by environment variables
API-Extensions on Artemis
On Artemis side the following extra REST-call must be implemented (part of the connector interface):
import to Artemis
/api/sharing/config: For exchanging the specific connector configuration
/api//sharing/import/basket: For receiving exercise infos (shopping basket) from the sharing plattform. A basket is identified by an basket token
export to Sharing Platform
/api/sharing/export/{token}: A rest service to download the zipped exercise.
Additional (internally added REST API) for Artemis frontend
import
/api/sharing/config/isEnabled: frontend request to query that api is enabled.
/api//sharing/setup-import: frontend request to load basket information for import
/api/sharing/import/basket/exerciseDetails: frontend request for exercise details
/api/sharing/import/basket/problemStatement: frontend request for the problem statement
export
/api/sharing/export/{exerciseId} preparation for exercise export to sharing plattform (and technical url redirect to sharing platform)
initial and continous initialization
The Sharing Platform usually polls every 10 minutes for the (potenially updated) configuration of the connected Artemis application.
In order to avoid a small initialisation gap on startup of the connected application, it can request an reinitialisation by calling the sharing plattform at /api/pluginIF/v0.1/reInitialize the the respecitve api-key.
The configuration contains also a specification of the exercises in the Sharing Platform that can be exchange with Artemis. Those are currently all exercise with the format: "artemis".
user interface (on Artemis side)
for import into Artemis from the Sharing Platform
a landing page in Artemis, on order to transfer the control from the sharing platform to artemis:
additional server logic in order to transfer the exercise content from the sharing platform to artemis
for export from Artemis into the Sharing Platform
an extension of the export functionality
.
This functionality will transfer the control to the sharing platform and will provide the exported contents via some rest services.
Describe alternatives you've considered
The only alternative we see, is the manual exchange of zipped exercises.
github-actionsbot
added
core
Pull requests that affect the corresponding module
exercise
Pull requests that affect the corresponding module
iris
Pull requests that affect the corresponding module
programming
Pull requests that affect the corresponding module
text
Pull requests that affect the corresponding module
labels
Oct 25, 2024
corePull requests that affect the corresponding moduleexercisePull requests that affect the corresponding modulefeatureirisPull requests that affect the corresponding moduleprogrammingPull requests that affect the corresponding moduletextPull requests that affect the corresponding module
Is your feature request related to a problem?
The CodeAbility Project currently operates and maintains a platform for sharing (among other content) programming exercises between interested parties. It is open to the programming teaching community.
CodeAbility also operates an Artemis instance that serves its 6 Austrian partners as a platform for programming teaching.
Artemis is currently a major source of programming exercises, as well as a potential target for re-using programming exercises.
However the exchange between separated instances of Artemis is only supported by a manual exchange of zipped exercises files.
We have implemented a REST-based connector interface in the sharing platform to import and export exercises between interested applications.
This connector interface allows among other features the import and export of programming exercises in an appropriate format.
We have already implemented an prototype integration of Artemis with the sharing platform based on the connector interface in order to allow for the smooth sharing of exercises.
Describe the solution you'd like
Base for the exchange is the zip-file download as currently supported by artemis.
Technically the zip-file is uncompressed and stored in the sharing platform git repository.
Profile definition
Artemis will be extended by an extra profile "sharing", that enables the connectivity with the Sharing Platform.
Configuration
The participating instance of Artemis has to exchange in advance a shared secret (API-key) with the maintainers of the sharing platform in order to enable the access to the sharing plattform.
In
application-sharing.yml
the following configurations have to be included:Both could also be configured by environment variables
API-Extensions on Artemis
On Artemis side the following extra REST-call must be implemented (part of the connector interface):
Additional (internally added REST API) for Artemis frontend
initial and continous initialization
The Sharing Platform usually polls every 10 minutes for the (potenially updated) configuration of the connected Artemis application.
In order to avoid a small initialisation gap on startup of the connected application, it can request an reinitialisation by calling the sharing plattform at /api/pluginIF/v0.1/reInitialize the the respecitve api-key.
The configuration contains also a specification of the exercises in the Sharing Platform that can be exchange with Artemis. Those are currently all exercise with the format: "artemis".
user interface (on Artemis side)
additional server logic in order to transfer the exercise content from the sharing platform to artemis
for export from Artemis into the Sharing Platform
an extension of the export functionality
.
This functionality will transfer the control to the sharing platform and will provide the exported contents via some rest services.
Describe alternatives you've considered
The only alternative we see, is the manual exchange of zipped exercises.
Additional context
There is already a prototypic implementation at https://search.sharing-codeability.uibk.ac.at/
The text was updated successfully, but these errors were encountered: