1 Handin-Server and Client

The "handin-server" collection directory contains a server to be run by a course instructor for accepting homework assignments and reporting on submitted assignments.

The "handin-client" collection directory contains a client to be customized then re-distributed to students in the course. The customized client will embed a particular hostname and port where the server is running, as well as a server certificate.

With a customized client, students simply install a Racket package or a ".plt" file—so there’s no futzing with configuration dialogs and certificates. A student can install any number of clients at once (assuming that the clients are properly customized, as described below).

The result, on the student’s side, is a Handin button in DrRacket’s toolbar. Clicking the Handin button allows the student to type a password and upload the current content of the definitions and interactions window to the course instructor’s server. The File menu is also extended with a Manage... menu item for managing a handin account (i.e., changing the password and other information, or creating a new account if the instructor configures the server to allow new accounts). Students can submit joint work by submitting with a concatenation of usernames separated by a “+”.

On the instructor’s side, the handin server can be configured to check the student’s submission before accepting it.

The handin process uses SSL, so it is effectively as secure as the server and each user’s password.