In my training course I give exercises to my students. They can (and in some of these course they must) submit them. I can then review them and give comments. I would like to have a web application to keep track of all the exercises and the submission.

In this experimental project Mark Gardner and myself will develop this application using live pair programming.


That will evolve.

A system to handle exercise submissions and reviews.

  • Admin can create (schedule) a course. (CLI is acceptable)
  • Admin can add a list of exercises to a course. An exercise can be just a link a page to the appropriate slide. (Some of them might be marked as mandatory.) (CLI is acceptable)
  • Admin can add names and email addresses, and associate them with a course. (Same user might come back to another course. That should be possible.) (CLI is acceptable)
  • Students can log in using the email address and a one-time code they get to the email that will keep them logged in for 24 hours from the last time they accessed the page. I think there is no need to store and manage passwords.
  • Students can see the list of exercises.
  • Students can upload the solutions, and see that they were uploaded. (Shall we allow uploading multiple exercises at once or is the individual upload a better idea?)
  • Students can upload a new revision of the exercise. Both student and admin can see the list of revisions.
  • Students can see the progress of others (as an average, or figures without names)
  • Admin can mark exercises as "reviewed". (marking a specific revision of the exercise) GUI
  • Admin can type in some answer that is shown on the page (to the logged in individual). Comments are also sent to the person by email. (associate with specific revision of the exercise.)
  • Students might be also comment on my comment. (Do we need this?)
  • Admin can prepare and use some canned answers. (preparing the answers can be CLI, but selecting and using them is on the GUI)
  • The server must store the files in a place that is easy for the admin to sync using the command line. (e.g. Dropbox or Git)
  • A student who has submitted an exercise can see the solutions of others of the same exercise and maybe even comment on them.