Skip to content
experimental H5P content for automated feedback on texts
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
language Fix missing double quote Jul 1, 2019
styles Remove CSS padding for main container May 4, 2018
.h5pignore Add .h5pignore Apr 30, 2019
LICENSE Update LICENSE Jan 12, 2018 Update Mar 10, 2018
icon.svg use the icon of Jelena Sep 25, 2017
library.json Bump patch Sep 3, 2018
semantics.json Add link support to the sample solution text Jan 17, 2019
upgrades.js Add upgrade script May 7, 2019

H5P Essay

Try to give automated feedback

This 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. Initially (and maybe finally), this feedback will simply be based on a list of keywords that have been defined be a teaching person before.

The content type could possibly evolve into a solution for automated essay scoring using machine learning techniques. However, that's merely wishful thinking right now. Also: Beware the pedagogical implications and stumbling blocks!

Support me at patreon!

If you like what I do, please consider to become my supporter at patreon:


"Sample Content with H5P Essay"


  • As a student, I can enter an essay text and submit it for "grading".
  • As a student, I can (automatically) save a draft and continue writing later.
  • As a teacher, I can add an introductory text describing the task and hints.
  • As a teacher, I can add keywords that the text will be scanned for.
  • As a teacher, I can define minimum number of characters in order to force students to write a certain amount of text.
  • As a teacher, I can define a maximum number of characters for the essay in order to stirr thinking about the task.
  • As a teacher, I can toggle fuzzy comparison that will grant some grammatical flexibility, e.g. also accept the plural form of a word.
  • As a teacher, I can override individual settings for caseSensitive and forgiveMistakes.
  • As a teacher, I can set individuals points for a keyword and its variations and thus weigh them for scoring.
  • As a teacher, I can set a maximum number of occurrences of keywords and its variations that shall be awarded with points.
  • As a teacher, I can disable scoring and just use autimated feedback in order to prevent wii-ficiation.
  • As a teacher, I can decide that some keywords are mandatory while others are not. (more transparent via score only)
  • As a teacher, I can define multiple ranges that will allow more diverse feedback.
  • 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.
  • As a student, I can receive instant feedback beyond a simple score.
  • As a teacher, I can use regular expressions for keywords if I feel the need to.
  • As a teacher, I can decide if the learner will see the keyword, an alternative, the matched word or none with the feedback.
  • As a teacher, I can set points that will be awarded in the host system (e.g. LMS) for merely answering an unscored question.

Further Ideas

You're welcome to contribute your ideas as an issue on github. For now there are (in no particular order or guarantee):

User Stories

  • As a teacher, I can receive the texts and the results of students.
  • As a teacher, I can set different levels of difficulty that the students can choose from.
  • As a student, I can select different levels of difficulty in order to gradually test myself.

xAPI statements


  • experienced (when opened): DONE (rather for activities without a "goal")
  • completed (when submitted): DONE (but might be redundant)
  • failed (if completed, but score is not sufficient): DONE
  • passed (if completed and score is sufficient): DONE
  • mastered (if completed and full score): DONE
  • scored (if completed, submit numerical score): DONE


  • text statistics and metrics, e.g. readability metrics or maybe something related to the AFINN file
  • different levels of difficulty, choosable by teacher and/or student
  • add css styling to feedback text (?)
  • improve accessibility
  • 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.

About this repository

If you want to download the sourcecode, you can choose from three main branches:

  • release: Will contain the latest official release.
  • stable: Will contain features that have not yet been released, but that should work. Use at your own risk in a production environment.
  • master: Will contain the latest progress, but may not have been fully tested. Should definitely not be used in a production environment!
You can’t perform that action at this time.