Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jacquard-autograder/jacquard
Platform-independent Java autograder with Gradescope support
https://github.com/jacquard-autograder/jacquard
autograder autograding gradescope gradescope-autograder
Last synced: 2 months ago
JSON representation
Platform-independent Java autograder with Gradescope support
- Host: GitHub
- URL: https://github.com/jacquard-autograder/jacquard
- Owner: jacquard-autograder
- License: apache-2.0
- Created: 2023-05-13T16:25:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-19T19:21:42.000Z (6 months ago)
- Last Synced: 2024-06-20T08:38:57.847Z (6 months ago)
- Topics: autograder, autograding, gradescope, gradescope-autograder
- Language: Java
- Homepage:
- Size: 14.8 MB
- Stars: 7
- Watchers: 3
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Jacquard
Jacquard is a Java autograder developed at Northeastern University
with Gradescope integration. It has been used at multiple universities.## Features
* Static analysis with [Checkstyle](https://checkstyle.org/) and
[PMD](https://pmd.github.io/).
* Syntactic analysis using [JavaParser](https://github.com/javaparser/javaparser)
* Test coverage and cyclomatic complexity measurement with
[JaCoCo](https://www.jacoco.org/jacoco/).
* Unit testing with [JUnit 5](https://junit.org/junit5/), including:
* running staff tests against student code
* running student tests against
* student code
* intentionally buggy staff-written code
* correct staff-written code## Examples
The best way to learn Jacquard is to review the examples, which include video explanations.
You should start with [Jacquard Example 0](https://github.com/jacquard-autograder/jacquard-example0),
which shows how to grade based on Checkstyle, PMD, and JUnit 5 tests.[Jacquard Example 1](https://github.com/jacquard-autograder/jacquard-example1) adds syntactic analysis based on
the parse tree, such as whether students use certain language features and methods.[Jacquard Example 2](https://github.com/jacquard-autograder/jacquard-example2) demonstrates:
* Changing the default configuration values:
* visibility level of results
* timeouts
* language level
* Running Checkstyle and PMD on multiple student files
* Measuring code coverage of student tests
* Running unit tests on student code
* Fine-grained control of visibility
* Cross-testing, i.e., running student tests against
* student code
* correct code
* buggy codeExample 2 does not depend on Example 1, which may be skipped if you are not interested in
syntactic analysis.## Further Information
* [Javadoc](https://jacquard.ellenspertus.com/)
* [FAQ](doc/FAQ.md)There are low-volume Google groups [jacquard-announce](https://groups.google.com/g/jacquard-announce)
and [jacquard-discuss](https://groups.google.com/g/jacquard-discuss).## Information for Contributors
I welcome contributors, especially ones interested in integrating Jacquard with learning
management systems (LMSs) and GitHub Classroom. See [tips for contributors](CONTRIBUTING.md).I also welcome [reports](https://github.com/jacquard-autograder/jacquard/issues), including
suggestions of how to improve Jacquard, the documentation, or examples.## Credits
Jacquard was influenced by Tim Kutcher's [JGrade](https://github.com/tkutcher/jgrade) and
includes some of its `Visibility` and `GradedTest` code.[![Javadoc](https://img.shields.io/badge/JavaDoc-Online-green)](https://jacquard.ellenspertus.com/)