|
| 1 | +.. _sharing-setup: |
| 2 | + |
| 3 | +.. |sharing_health1| image:: sharing/sharing_health1.png |
| 4 | +.. |sharing_health2| image:: sharing/sharing_health2.png |
| 5 | +.. |sharing_button1| image:: sharing/sharingButtonArtemis.png |
| 6 | +.. |sharing_button2| image:: sharing/sharingButtonSharing.png |
| 7 | + |
| 8 | +Setup Guide for Exchange with the Sharing Platform |
| 9 | +================================================== |
| 10 | + |
| 11 | +.. contents:: |
| 12 | + :local: |
| 13 | + |
| 14 | +Background |
| 15 | +---------- |
| 16 | + |
| 17 | +The `Sharing Platform <https://search.sharing-codeability.uibk.ac.at/>`_ is an open platform for sharing teaching materials related to programming. It is operated by the `University of Innsbruck <https://www.uibk.ac.at/en/>`_. While primarily designed as an open exchange platform, it also provides features such as private group exchanges and the ability to restrict public access to certain content, such as the solution repository of an Artemis exercise. |
| 18 | + |
| 19 | +For more details, visit the `help menu <https://search.sharing-codeability.uibk.ac.at/>`_ of the sharing platform. |
| 20 | + |
| 21 | +To facilitate the exchange of programming exercises among instructors, the sharing platform offers a connector to Artemis, enabling any Artemis instance to integrate with the platform for seamless sharing. |
| 22 | + |
| 23 | +Prerequisites |
| 24 | +------------- |
| 25 | + |
| 26 | +To connect to the sharing platform, you need an API key. To request one, contact the platform maintainers at ` [email protected]` and provide the URL of your active Artemis instance. |
| 27 | + |
| 28 | +**Important:** Sharing only works if your Artemis instance is accessible on the internet. If making your instance publicly available is not an option, the maintainers can provide a list of required Artemis URLs that must be accessible to the sharing platform. |
| 29 | + |
| 30 | +**Configuration** |
| 31 | +~~~~~~~~~~~~~~~~~ |
| 32 | + |
| 33 | +Once you receive your API key, you should add it to the configuration file **``application-sharing.yml``** or your `.env` file: |
| 34 | + |
| 35 | +**Option 1: application-sharing.yml** |
| 36 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 37 | + |
| 38 | +.. code-block:: yaml |
| 39 | +
|
| 40 | + artemis: |
| 41 | + sharing: |
| 42 | + # Shared common secret |
| 43 | + apikey: <your API Key> |
| 44 | + serverurl: https://search.codeability.uibk.ac.at |
| 45 | + actionname: Export to Artemis@myUniversity |
| 46 | +
|
| 47 | +**Option 2: .env file for Docker initialization** |
| 48 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 49 | + |
| 50 | +.. code-block:: bash |
| 51 | +
|
| 52 | + ARTEMIS_SHARING_SERVERURL=https://search.codeability.uibk.ac.at |
| 53 | + ARTEMIS_SHARING_APIKEY=<Enter your API Key here> |
| 54 | + ARTEMIS_SHARING_ACTIONNAME=Export to Artemis@<Enter an ID here> |
| 55 | +
|
| 56 | +Additionally, you must enable the **``sharing``** profile to activate the sharing connector. |
| 57 | + |
| 58 | +Once configured, restart your Artemis instance. |
| 59 | + |
| 60 | +**Instructor Access Requirements** |
| 61 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 62 | + |
| 63 | +For instructors to exchange programming exercises, they need an account on the sharing platform. They can register using one of the following methods: |
| 64 | + |
| 65 | +- **EduID Authentication**: The simplest way is through `EduID (Austria) <https://www.aco.net/federation.html>`_ or `EduID (Germany) <https://doku.tid.dfn.de/de:aai:eduid:start>`_. Forward the necessary connection details to the sharing platform maintainers. |
| 66 | +- **GitLab-Based Registration**: If EduID is not an option, users can register via the sharing platform’s GitLab instance. However, for security reasons, self-registration is restricted to certain email domains. To enable access, forward the desired domains to the maintainers for approval. |
| 67 | + |
| 68 | +Troubleshooting |
| 69 | +--------------- |
| 70 | + |
| 71 | +To assist in troubleshooting, the **sharing profile** includes an additional health indicator, accessible via the **``Administration -> Health``** menu. |
| 72 | + |
| 73 | +|sharing_health1| |
| 74 | + |
| 75 | +Under **Details**, you will typically find the following entries: |
| 76 | + |
| 77 | +|sharing_health2| |
| 78 | + |
| 79 | +- The **first entry** is an initialization request sent after startup. |
| 80 | +- The **second entry** reflects the subsequent receipt of the connector configuration from the sharing platform. |
| 81 | +- Additional entries represent regular configuration polling requests from the sharing platform. |
| 82 | + |
| 83 | +The **Details** log stores the last 10 entries. |
| 84 | + |
| 85 | +If the health status is not **``up``**, check the error message in the details. If the issue is unclear, feel free to contact the sharing platform maintainers for support. |
| 86 | + |
| 87 | +Conclusion |
| 88 | +---------- |
| 89 | + |
| 90 | +Once everything is set up correctly, you should see the |sharing_button1| button in the **Programming Exercise Details** dialog in Artemis. |
| 91 | + |
| 92 | +Similarly, the |sharing_button2| button should appear on the sharing platform for any programming exercise available there. |
| 93 | + |
| 94 | +Before testing the import and export functionality, refer to the user documentation at :ref:`sharing` for further details. |
0 commit comments