/CodeGra.fs

The CodeGrade filesystem

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

CodeGra.fs

Build Status Made with ❤ & ️🍻 CodeGra.de Semantic Version v0.4.2-beta License AGPL-3.0-only

CodeGrade Filesystem

The CodeGrade Filesystem is the extension of CodeGrade that allows you to test, review and grade all CodeGrade assignments locally from within your favourite editor. The Filesystem application mounts a local CodeGrade instance on your computer, which makes browsing through all your CodeGrade courses, assignments and submissions very easy.

We aim to further enhance the grading experience and decrease overhead with the CodeGrade Filesystem.

Installation

The CodeGrade Filesystem is an external application that can be installed on Windows, MacOS and GNU/Linux. To install it go to The CodeGrade website and follow the instructions there.

Dependencies

The supplied installers automatically install all required dependencies for the CodeGrade Filesystem to work, these are:

Usage

Open the CodeGrade Filesystem program to mount the CodeGrade server locally. Follow the steps below to mount:

  1. Select your institution, or select Other to use a custom CodeGrade instance.
  2. Fill in your CodeGrade username and password.
  3. Optional: Select the mount location (default is desktop).
  4. Optional: Set Revision mode, Assigned to me and Latest Only options.
  5. Optional: Set verbosity of the notifications of CodeGrade Filesystem.
  6. Click mount to mount the CodeGrade Filesystem.

Command line usage (deprecated)

Installing the filesystem automatically installs the cgfs command, which is also used in the back-end of the GUI. Use cgfs --help for an overview of the options of the cgfs command line tool. Using the GUI is highly recommended.

Available files

The basic layout of the file-system is /course/assignment/submission - submission_time. All files that a student submitted can be found in the submission folder. Depending on the Assigned to me and Latest Only options, this shows respectively only the submissions assigned to you and only the latest submissions.

The CodeGrade Filesystem also uses a few special files, these are files that are not submitted by a student but can be used to control CodeGrade. These files are validated on a save, which fails if the file format is not correct. The following special files exist:

Name Editable1 Location Use Format
.api.socket Root Location of the api socket Single line with file location
.cg-mode Root Mode file system FIXED or NOT_FIXED
.cg-assignment-id Assignment Id of this assignment Single line with id
.cg-assignment-settings.ini Assignment Settings for this assignment Ini file with settings
.cg-edit-rubric.md Assignment Rubric for this assignment, editing changes the rubric See .cd-edit-rubric.help
.cg-edit-rubric.help Assignment Help file for the rubric file Plain text file
.cg-feedback Submission The general feedback for this submission Plain text file
.cg-grade Submission The grade for this submission Single float or empty to delete or reset2 the grade
.cg-rubric.md 3 Submission The rubric for this submission Markdown file where a ticked box means the item is selected.
.cg-submission-id Submission Id of this submission Single line with id

1: Only if you have the correct permissions.

2: The grade is reset if a rubric grade is available, otherwise it is deleted.

3: Only markdown checkboxes should be changed.

It can happen that you didn't follow the exact format of the special file and can't easily recover anymore. This isn't a really big deal, you can write the string __RESET__ to any writable special file to reset it to its server state.

CodeGra.fs is best used in combination with an editor plugin, such plugins exist for emacs, atom and vim and more are being created upon request.

Privacy

You can use the CodeGrade FileSystem for any CodeGrade instance. The application does a version check at every startup, this is done by doing a request to https://codegra.de/.cgfs.json and to https://codegra.de/.cgfs.version. We do not collect any personal information at these routes. It is currently not possible to disable this version check.

Support

Please report any issues by creating a GitHub issue here, if possible please include link to uploaded a log output when encountering the bug using the verbose mode (use the --verbose command line flag, or click 'verbose' in the GUI). You can upload logs to any pastebin-like website, for example glot.io.

Commercial support of CodeGrade Filesystem is available and included in a commercial CodeGrade license. We would love to provide more information, please send an e-mail to support@codegra.de!

License

CodeGra.fs as a whole is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only). All license identifiers used in this product are SPDX license identifiers.