{"id":44517079,"url":"https://github.com/otacke/h5p-essay","last_synced_at":"2026-02-13T17:19:24.774Z","repository":{"id":23778829,"uuid":"99829872","full_name":"otacke/h5p-essay","owner":"otacke","description":"experimental H5P content for automated feedback on texts","archived":false,"fork":false,"pushed_at":"2026-01-14T16:53:15.000Z","size":413,"stargazers_count":18,"open_issues_count":10,"forks_count":34,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-14T20:06:21.422Z","etag":null,"topics":["essay","feedback","h5p","score","students","teachers"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/otacke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-09T16:27:59.000Z","updated_at":"2025-10-28T12:32:23.000Z","dependencies_parsed_at":"2023-12-05T12:29:41.596Z","dependency_job_id":"652370df-f99a-4d27-b8ff-97d7782cf30b","html_url":"https://github.com/otacke/h5p-essay","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/otacke/h5p-essay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otacke%2Fh5p-essay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otacke%2Fh5p-essay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otacke%2Fh5p-essay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otacke%2Fh5p-essay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/otacke","download_url":"https://codeload.github.com/otacke/h5p-essay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otacke%2Fh5p-essay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29412922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["essay","feedback","h5p","score","students","teachers"],"created_at":"2026-02-13T17:19:23.266Z","updated_at":"2026-02-13T17:19:24.770Z","avatar_url":"https://github.com/otacke.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"H5P Essay\n=========\nTry to give automated feedback\n\nThis is rather an experimental playground than a fully elaborated content type for H5P. In its first stage, learners will be able to write a text and receive feedback immediately.\nInitially (and maybe finally), this feedback will simply be based on a list of keywords that have been defined be a teaching person before.\n\nThe content type could possibly evolve into a solution for [automated essay scoring](https://en.wikipedia.org/wiki/Automated_essay_scoring) using machine learning techniques. However, that's merely wishful thinking right now. Also: Beware the pedagogical implications and stumbling blocks!\n\n## Example\n![\"Sample Content with H5P Essay\"](https://ibin.co/3s9w39KcHu0W.png \"Sample Content with H5P Essay\")\n\n## Done\n- As a student, I can enter an essay text and submit it for \"grading\".\n- As a student, I can (automatically) save a draft and continue writing later.\n- As a teacher, I can add an introductory text describing the task and hints.\n- As a teacher, I can add keywords that the text will be scanned for.\n- As a teacher, I can define minimum number of characters in order to force students to write a certain amount of text.\n- As a teacher, I can define a maximum number of characters for the essay in order to stirr thinking about the task.\n- As a teacher, I can toggle fuzzy comparison that will grant some grammatical flexibility, e.g. also accept the plural form of a word.\n- As a teacher, I can override individual settings for caseSensitive and forgiveMistakes.\n- As a teacher, I can set individuals points for a keyword and its variations and thus weigh them for scoring.\n- As a teacher, I can set a maximum number of occurrences of keywords and its variations that shall be awarded with points.\n- As a teacher, I can disable scoring and just use autimated feedback in order to prevent wii-ficiation.\n- ~~As a teacher, I can decide that some keywords are mandatory while others are not.~~ (more transparent via score only)\n- As a teacher, I can define multiple ranges that will allow more diverse feedback.\n- As a teacher, I can define optional feedback phrases for a keyword; one for \"if found in text\" and one for \"if not found in text\". The content type might glue those phrases together, thus creating a feedback text.\n- As a student, I can receive instant feedback beyond a simple score.\n- As a teacher, I can use regular expressions for keywords if I feel the need to.\n- As a teacher, I can decide if the learner will see the keyword, an alternative, the matched word or none with the feedback.\n- As a teacher, I can set points that will be awarded in the host system (e.g. LMS) for merely answering an unscored question.\n\n## Further Ideas\nYou're welcome to contribute your ideas as an issue on github. For now there are (in no particular order or guarantee):\n\n### User Stories\n- As a teacher, I can receive the texts and the results of students.\n- As a teacher, I can set different levels of difficulty that the students can choose from.\n- As a student, I can select different levels of difficulty in order to gradually test myself.\n\n### xAPI statements\nCompare https://web.archive.org/web/20170628002610/http://xapi.vocab.pub/datasets/adl/\n\n- ~~experienced (when opened): DONE~~ (rather for activities without a \"goal\")\n- completed (when submitted): DONE (but might be redundant)\n- failed (if completed, but score is not sufficient): DONE\n- passed (if completed and score is sufficient): DONE\n- mastered (if completed and full score): DONE\n- scored (if completed, submit numerical score): DONE\n\n### Misc\n- text statistics and metrics, e.g. readability metrics or maybe something related to the AFINN file\n- different levels of difficulty, choosable by teacher and/or student\n- add css styling to feedback text (?)\n- improve accessibility\n- later on: possibly build a model that allows to relate texts with scores from a human, so you can train the content type and then use this model to compute the/a score, too.\n\n## About this repository\nIf you want to download the sourcecode, you can choose from three main branches:\n\n- __release:__ Will contain the latest official release.\n- __stable:__ Will contain features that have not yet been released, but that should work. Use at your own risk in a production environment.\n- __master:__ Will contain the latest progress, but may not have been fully tested. Should definitely not be used in a production environment!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotacke%2Fh5p-essay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fotacke%2Fh5p-essay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotacke%2Fh5p-essay/lists"}