Simplify the process of grading tasks by automating the setup of preloaded Bash scenarios in four terminal windows using a Python script.
-
Streamlines the grading process, saving time and ensuring consistency:
- Technology Used: Python, Bash.
- How: The script automates the setup of terminal windows, reducing the manual effort required to grade assignments.
-
Adaptable to a variety of grading tasks and scenarios
- Technology Used: Python, Bash.
- How: The script can be adapted to different grading requirements by changing the parameters entered and Bash scenarios.
-
Improves visibility by displaying 4 scenarios simultaneously
- Technology Used: Bash, AutoHotkey.
- How: Bash is used to create 4 terminals, AutoHotkey resizes, repositions, and removes the terminals according to user's commands.
To use this automation script, follow these steps:
- Clone this repository to your local machine.
git clone https://github.com/michaeljluo/AutomatedGrader.git
-
Create a .txt file in the project directory with a list of github usernames of the students (one username per line).
-
Use clonerepos.py to clone all of the students' repos to your machine.
-
Make a copy of the homework01 folder and modify the Python script, Bash scripts, and JSON scripts according to your program and grading requirements.
-
Run the Python script to create the terminal windows with preloaded scenarios (e.g. scenario 1 through 4). The python program takes 3 arguments: the homework folder name, the username of the github user, and the number of the scenario you wish to run.
python3 homework01.py homework01 github_user 1
-
Run scenario '0' to resize the windows to snap to each corner of the screen. Run scenario 'q' to quit the 4 terminals
-
Rinse and repeat.
To get started with this project, follow these steps:
-
Install Python on your system if it's not already installed. You can download Python from the official website: Python Downloads.
-
You will also need to install AutoHotkey v1 (latest patch)
-
Clone this repository to your local machine as mentioned in the "Usage" section.
-
Customize the
commands
list in the Python script (grading_automation.py
) with the specific grading tasks and scenarios you need. -
Run the Python script to automate the grading setup and execution of tasks.