An automated grading system that evaluates Comp2603 assignment 1 and generates detailed PDF reports with marks and feedback based on assignment specification.
There are several ways to save this repository to your device. These options include:
-
Running the following command in a terminal, provided the GitHub CLI has been previously installed:
git clone https://github.com/carrot2803/autograder.gitJava and Maven are required to run this application. Refer to the Document for prerequisite installations.
- To install the required dependencies and package the application, run the following command:
mvn clean package- To run the application, execute the following command:
java -jar target/autograder-1.0-SNAPSHOT-jar-with-dependencies.jar- Full coverage unit & performance test for all interfaces
- ZIP file extraction for student submissions
- Submission evaluation & grading based on assignment specification
- PDF feedback generation with detailed test results and scores
- Implements over 5 formal design patterns and many informal ones
- High performance processing times of under 30 seconds for 100 submissions
This project follows a layered architecture, with structures as the domain layer, services as the application layer, and interfaces as the contract layer. Link to Documentation
com.gophers # Root package
.
├── interfaces # contains all core system interfaces
|
├── services # contains core business logic for system
| ├── handlers # operations for handling submissions and generating results
| ├── helpers # helpers for grade processing services
| └── testCases # testcase suite for evaluating submission quality
|
├── structures # contains all structural entities within the project
| ├── domain # domain data models representing real world enitties
| ├── factory # contains grade factory classes for assigning grades
| └── grades # storage model to encapsulate scores per sub-section
|
└── utilities # contains utility classes and functions