It's made of:
- a web app that students will use to give their answers;
- a simple Markdown-based language to define quizz and coding exercises;
- scripts to deploy, evaluate and grade students' answers automatically.
🇫🇷Annonce de sortie en Français: Un exerciseur en ligne + script pour corriger et noter le code de vos étudiants
- 100% paperless examination/testing/training software, 100% online;
- designed for automated testing and evaluation of students' answers;
- exams/tests defined as Markdown files;
- variants based on student id;
- students identified using their Google Apps account;
- answers submitted to a Firebase account, can be exported to a JSON file;
- students scores can be evaluated in real time, from a web dashboard;
- beautiful UI thanks to Google Polymer and Material Design.
- Fork, then clone the repo locally
npm installto install dependencies,
npm run createto generate sample exercises and configuration to
- Update exercises files (
/exam-data/*.md) using Markdown formatting and Mustache variables (see howto),
npm run buildto compile exercise data into
npm startto start the web server locally,
- Open localhost:8080 to test the web client locally.
How to deploy a test to Firebase
- Create a new project on Firebase
- Click on "Add Firebase to your web app"
- Copy the values of the given
messagingSenderIdproperties to the
FIREBASE_CONFIGobject of your
/exam-data/exam-config.jsfile (i.e. overwrite existing values)
- Still in your
- un-comment the
npm run buildto re-compile your configuration into
npm run deploy-firebase(or
npm run deploy-firebase-instances) to push the project to production on Firebase Hosting
- Test your Firebase project from the given URL, by simulating a student's submission
/exam-data/exam-config.js, don't forget to toggle the
active property (to
0) of your Firebase database, to (de-)activate student access to the test.
How to evaluate and grade submitted answers
At all times, you can:
- Go to the "Database" section of your Firebase project's dashboard to see the submitted answers
- Export the submitted data as a JSON file, for backup and/or offline evaluation and grading
After having run the steps above, you can either:
npm run eval(
npm run eval-instances) to compute the scores of answers stored in your Firebase database;
npm run eval-firebase-dumpsto do it offline, from a JSON export of your Firebase database.
In both cases, resulting grades will be stored in the
How to enable student identification
- Change Google's client ID (from
/exam-data/exam-config.js) so that students can identify using your own google apps domain name (or localhost),
deployagain to your test's hosting account. (e.g. Firebase or Heroku)
- Add variants to Quizzes.
- Allow per-variable variants. => more combinations.
- Add access rules. (per student group and timeslot)
- (read more)