{"id":23960451,"url":"https://github.com/futuresea-dev/open-educational-resources-moodle","last_synced_at":"2025-02-24T12:19:24.413Z","repository":{"id":271268996,"uuid":"912909487","full_name":"futuresea-dev/Open-Educational-Resources-Moodle","owner":"futuresea-dev","description":"The Open Educational Resources (OER) plugin provides the possibility to release files from Moodle courses into OER Repositories for public use","archived":false,"fork":false,"pushed_at":"2025-01-06T16:37:41.000Z","size":998,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T12:19:22.508Z","etag":null,"topics":["moodle","moodle-plugin","oer","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/futuresea-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-06T16:35:09.000Z","updated_at":"2025-01-06T16:37:44.000Z","dependencies_parsed_at":"2025-01-06T17:57:09.581Z","dependency_job_id":null,"html_url":"https://github.com/futuresea-dev/Open-Educational-Resources-Moodle","commit_stats":null,"previous_names":["futuresea-dev/open-educational-resources-moodle"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FOpen-Educational-Resources-Moodle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FOpen-Educational-Resources-Moodle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FOpen-Educational-Resources-Moodle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FOpen-Educational-Resources-Moodle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futuresea-dev","download_url":"https://codeload.github.com/futuresea-dev/Open-Educational-Resources-Moodle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240475233,"owners_count":19807292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["moodle","moodle-plugin","oer","php"],"created_at":"2025-01-06T19:28:22.564Z","updated_at":"2025-02-24T12:19:24.380Z","avatar_url":"https://github.com/futuresea-dev.png","language":"PHP","readme":"# moodle-local_oer\n\nThe Open Educational Resources (OER) plugin provides a graphical user interface (GUI) to release files from courses for public use.\nThe first version of the plugin was developed during a project about [open education](https://www.openeducation.at/). It was developed very close to the Graz University of\nTechnology customizations of Moodle. The use for other educational institutions was therefore very limited.\n\nIn this repository a refactored version of the plugin can be found. This version has been developed for Moodles Boost theme. Adaptations, which are necessary for the Moodle\ninstance at Graz University of Technology, were moved to subplugins. ~~The base plugin is fully functional without these subplugins.~~\nSince the version v2.3.0 subplugins for loading the OER resources are necessary, but the basic versions for Moodle files are bundled with the local_oer plugin.\n\n# Requirements\n\n- Supported Moodle Version: 4.1 - 4.5\n- Supported PHP Version:    7.4 - 8.3\n- Supported Databases:      MariaDB, PostgreSQL\n- Supported Moodle Themes:  Boost\n\nThis plugin has only been tested under the above system requirements against the specified versions.\nHowever, it may work under other system requirements and versions as well.\n\n\n# Setup\n\nAfter installation of the plugin, there are several settings that can be made:\n\n* `local_oer | metadataaggregator` if a subplugin is for linked external course metadata is installed, select the subplugin that should be used. (Default: Default courseinfo\n  aggregator)\n* `local_oer | requiredfields` Select the fields that will show as required in the file metadata form. `Title`, `License` and `Persons` are always required. (New setting since\n  2.1.12)\n* `local_oer | uselicensereplacement` When enabled, an additional textarea will appear below. (Default: No)\n* `local_oer | licensereplacement` Enter replacements for the moodle license shortnames in the format: `cc-nd=\u003eCC BY-ND 3.0`. The exchange takes place when the metadata is queried.\n* `local_oer | zipperfilesize` Size of the ZIP files. The Zipper is a helper that can be used by upload subplugins to create ZIP Packages from released files in courses. For\n  administrators there is a Download ZIP button in the OER view in courses, but this always generates only one ZIP of full size and ignores this setting.\n* `local_oer | allowedlist` The capabilities to use the oer plugin are set for the editingteacher role by default. An allowance list is used to allow instructors to share files for\n  OER. If all editingteachers should get access to it. This setting can be turned off, and the list then is used as disallowance list.\n* `local_oer | notallowedtext` The text that is shown to editingteachers when they are not allowed to use the plugin.\n* `local_oer | pullservice` When enabled, the Metadata and URLs to the released files can be directly accessed in Moodle (Default: No). The released metadata can be accessed\n  through `https://*yourmoodledomain*/local/oer/public_metadata.php`.\n* `local_oer | next_upload_window` This Button opens a configuration formular to configure the release cycle.\n* `local_oer | releaseplugin` Select the upload plugin that will be used to upload released files to a repository.\n* List of installed subplugins. Enable or disable them. If a subplugin has settings, a settings link will be shown.\n\n### New settings in version v2.1.14\n\n* `local_oer | coursecustomfields` Add course customfields to the resulting coursemetadata\n* `local_oer | coursecustomfieldvisibility` The customfields have some visibility settings. The fields will be added to the course metadata respecting the visibility setting of the\n  fields. Choose the level of visibility that will be added to the metadata.\n* `local_oer | coursecustomfieldsignored` Select customfields to ignore them. The selected fields will not be added to the course metadata.\n* `local_oer | coursetofile` When enabled, the course metadata can be selected for each file separately. The setting on course level will be applied per default, but can be\n  overwritten per file. Also it is possible to add course metadata of other courses to a file, if the file is used in multiple courses.\n\n### New settings in version v2.3.0\n\n* `local_oer | applicationprofile` Select the default applicationprofile for the JSON metadata from pull service.\n\n# Release snapshots\n\nThe metadata of released files is stored in an extra snapshot table. A snapshot contains all metadata the file had on the release. When the metadata changes a new release will be\ncreated. Old releases remain in the table and can be seen as release history on `https://*yourmoodledomain*/local/oer/views/releasehistory.php` (WIP - current release only shows\ncourses with amount of files)\n\nA task is running regularly and create snapshots of files marked for release. The release cycle can be configured in settings (see `local_oer | next_upload_window`). Predefined\nvalues can be selected (like Daily, Monthly etc..) or a custom setting is made (like 15.02;10.07 - this will then run every year on the given dates).\n\nWhen the pull service is active the newest releases can be requested on `https://*yourmoodledomain*/local/oer/public_metadata.php`. It also includes links to the files.\n\n# Views\n\n* GUI to edit and release files per course: `{yourmoodledomain}/local/oer/views/main.php?id={courseid}` - Can be found in every course in the course settings.\n* Maintain (dis)allowance of use: `{yourmoodledomain}/local/oer/views/manage.php` - Can be found in the administration settings\n* Releases: `{yourmoodledomain}/local/oer/views/releasehistory.php` - Can be found in the administration settings\n* Logs and errors: `{yourmoodledomain}/local/oer/views/log.php` - Can be found in the administration settings\n* Settings: `{yourmoodledomain}/admin/settings.php?section=local_oer` - Can be found in the administration settings\n* Time settings: `{yourmoodledomain}/local/oer/views/time_config.php` - Can be found in the administration settings\n\n# Metadata\n\nJSON Format:\n\nSince release v2.3.0 there are different application profiles.\nThe version **v1.0.0** is the legacy profile and only supports Moodle Files as the contenthash of a file is the main identifier.\nThe new profile is **v2.0.0** has been created to use a new identifier that also supports external element types like opencast.\nWith the setting `local_oer | applicationprofile` the default profile can be selected. When calling the pull service `local/oer/public_metadata.php`\na header value can be set to load a different profile as set in the setting.\n`ACCEPT: application/json; applicationprofile={version}`\n\nMost of the metadata fields remain the same, but there are some significant differences:\n\n```\n  \"applicationprofile\": \"v2.0.0\",\n  \"moodlecourses\": [\n    { // course array starts counting at 0, so no extra key is made in JSON\n      \"elements\": [\n        \"title\": \"remains the same\",\n        \"identifier\": \"oer:moodle@localhost:file:contenthash:ABC123\",\n        \"source\": \"fileurl has been renamed to source\",\n        // abstract, license, context, resourcetype, \n        // language, persons, tags, timereleased, classification, courses\n        // are also present for every element (same structure as in v1.0.0)\n        // Not every subplugin delivers all the other fields:\n        // For example mimetype, filesize, filecreationtime may not be \n        // available\n      ]\n```\n\n```\n  \"applicationprofile\": \"v1.0.0\",\n  \"moodlecourses\": [\n    \"1\" =\u003e {\n      \"files\": [\n        {\n          \"title\": \"Title of file\",\n          \"contenthash\": \"The contenthash of the file as calculated from moodle\",\n          \"fileurl\": \"Link to fileresource in moodle instance\",\n          \"abstract\": \"Description of file\",\n          \"license\": {\n            \"shortname\": \"CC BY 4.0\",\n            \"fullname\": \"Creative Commons Attribution 4.0 International (CC BY 4.0)\",\n            \"source\": \"https://creativecommons.org/licenses/by/4.0/\"\n          },\n          \"context\": \"Higher Education\",\n          \"resourcetype\": \"No selection\",\n          \"language\": \"de\",\n          \"persons\": [\n            {\n              \"role\": \"Author\",\n              \"lastname\": \"Ortner\",\n              \"firstname\": \"Christian\"\n            }\n          ],\n          \"tags\": [\n            \"Nice\",\n            \"Example\"\n          ],\n          \"mimetype\": \"application/pdf\",\n          \"filesize\": \"123456\",\n          \"filecreationtime\": \"1648812703\",\n          \"timereleased\": \"1648812704\",\n          \"classification\": [\n            {\n              \"type\": \"oefos //requires oerclassification_oefos subplugin to be installed\",\n              \"url\": \"https://www.data.gv.at/katalog/dataset/stat_ofos-2012\",\n              \"values\": [\n                {\n                  \"identifier\": \"503008\",\n                  \"name\": \"E-learning\"\n                }\n              ]\n            }\n          ],\n          \"courses\": [\n            {\n              \"identifier\": \"moodlecourse\",\n              \"courseid\": \"2\",\n              \"sourceid\": \"\",\n              \"coursename\": \"OER JSON Example\",\n              \"structure\": \"Lecture\",\n              \"description\": \"Learn about the JSON structure of the metadata\",\n              \"objective\": \"\",\n              \"organisation\": \"Educational Technologies\",\n              \"courselanguage\": \"en\",\n              \"lecturer\": \"Christian Ortner\"\n            }\n          ] // Coursemetadata per file\n        }\n      ] // Files\n    }\n  ] // Moodle course\n}\n```\n\n# Pull service parameters\n\nSince **v2.3.0** parameters can be used for the pull service in `/local/oer/public_metadata.php`.\n\n* no parameter: Default behaviour, latest release of all elements is shown with selected application profile.  \n                Application profile is either chosen by setting, or with an additional header attribute (see [metadata](#metadata) section)\n* _?identifier={identifier}_: Loads the release history of a single element.\n* _?releasedates_: Loads a list of all releases with releasedates. Includes the **releasenumber** needed for _?release_\n* _?release={releasenumber}_: Loads all elements from a given release\n\n# Subplugin types\n\nThere are ~~three~~ four (since v2.3.0) subplugintypes that can be used with this plugin.\n\n## Modules\n\nWith version **v2.3.0** the OER resources can be delievered from different sources, so it was necessary to create this subplugin type.\n\nThe plugin has the first two subplugins bundled. **oermod_resources** and **oermod_folder** are loading Moodle files from the Moodle activities mod_resource and mod_folder.\n**oermod_opencast** is a new source for releasing OER content. The plugin can be found on github: [oermod_opencast](https://github.com/llttugraz/moodle-oermod_opencast)\n\n## Metadata aggregator\n\nMainly used to load additional metadata from linked courses of the educational institution. If needed, additional metadata fields can also be attached to the file metadata.\n\n## Classification\n\nExtend the formular for file metadata with additional classification information. Multiple classification plugins can be used.\n\n## Uploader (deprecated since v2.3.0, will be removed in a future release)\n\nThe base plugin has an endpoint that provides the metadata of all published files including links to the files as JSON. If the preferred way to load the data from Moodle is not via\nthis pull service, but via upload, an additional plugin can be defined which enables the upload to a repository.\n\n# Accessibility Status\n\nIn accordance with the [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/TR/WCAG21/), the following four principles must be fulfilled / taken into account in order to achieve accessibility in our products / services.\n\n| Principle | Description |\n|-----------|-------------|\n| Perceivable    | Information and user interface components must be presentable to users in ways they can perceive.|\n| Operable       | User interface components and navigation must be operable.|\n| Understandable | Information and the operation of the user interface must be understandable.|\n| Robust         | Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies.|\n\nThe diagram below shows the extent to which this plugin complies with these principles.\n\n![Accessibility Status](pix/accessibility.png)\n\n## Privacy\n\nThe following personal data are stored:\n\n| name         | description                                                      |\n|-------------|-------------------------------------------------------------------|\n| userid      | The ID of the user who is in the list of using OER metadata tools |\n| timecreated | Time when clearance was set                                       |\n| type        | Type of clearance                                                 |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fopen-educational-resources-moodle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuturesea-dev%2Fopen-educational-resources-moodle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fopen-educational-resources-moodle/lists"}