Automated grading utility for student submissions, original source repository https://github.com/boomcamp/grading-utils
List of repositories :
- html-css-final
- javascript-1
- javascript-2-arrays
- javascript-2-objects
- javascript-3-this
- javascript-4-callbacks
- javascript-4-prototype
- javascript-5-promises
git clone -b master [email protected]:boomcamp/student-grading-utils.git
student-grading-utils/
.
├── bin
│ ├── env.sh
│ ├── grade_html_css_final.sh
│ ├── grade_jasmine_spec_repo.sh
│ └── reset.sh
├── Dockerfile
├── Dockerfile1
├── final_1366x768.png
├── grade.env
├── package.json
├── package-lock.json
├── README.md
├── screenshots
│ ├── grade-html-css.png
│ └── jasmine-report.png
└── utils
├── downloadPullRequestRepos.js
├── gradeHtmlCssFinal.js
├── gradeJasmineSpecRepo.js
├── reporter.js
└── worker.js
3 directories, 18 files
Definitions:
1. student-grading-utils = The base folder.
2. utils = Javascript files uses to grade student submissions.
3. output_dir = The output folder that contains extracted student submissions folder from `tmp` folder.
4. tmp = Temporary folder to store pull request in `.gz` format.
5. bin = Contains executable scripts for grading.
6. final_1366x768 = Default image to compare downloaded `html-css-final` student submissions.
7. checker = variable to specify executable scripts for grading.
8. execfile = variable to execute reset.sh to empty output_dir and tmp folders after grading.
9. screenshots = Example demonstrations.
10. grade.env = Docker environment variables.
10 Dockerfile,Dockerfile1 = Use to build docker image for student-grading-utils.
Setup:
- /bin/.env = Holds system variables for grading.
Example contents:
export branch=submission
export repo=https://github.com/boomcamp/javascript-2-arrays
export BASH_SOURCE=/bin/bash
export output_dir=/home/dev-mentor/Downloads/student-grading-utils/output_dir
export tmpdir=/home/dev-mentor/Downloads/student-grading-utils/tmp #/var/tmp
export reference_image=/home/dev-mentor/Downloads/student-grading-utils/final_1366x768.png
export submissions=/output_dir/
export execfile=/home/webdev/Desktop/student-grading-utils/bin/reset.sh
Installation:
- Install dependencies
cd student-grading-utils && npm install
- Export variables inside
bin
folder.
cd bin && ./env.sh
- Reloading variables.
cd bin && source ./env
- How to grade student
html-css-final
submissions.
cd bin && ./grade_htmls_css_final.sh
- How to grade
javascript
submissions.
cd bin && ./grade_jasmine_spec_repo.sh
- Update
student-grading-utils/grade.env
with necessary data to download and grade student submissions.
grade.env
branch=submission
repo=https://github.com/boomcamp/html-css-final
output_dir=/student-grading-utils/output_dir
tmpdir=/student-grading-utils/tmp
reference_image=/student-grading-utils/final_1366x768.png
submissions=/output_dir/
checker=grade_html_css_final.sh
execfile=/student-grading-utils/bin/reset.sh
- Build student-grading-utils container.
docker build -t student-grading-utils .
- Run the grading utils with this docker command.
docker run --env-file grade.env student-grading-utils
- Aodhan Hayter
- Jino Lacson
- John Michael Bolima
- Daniel Nebreja
- Koji Adriano
- Robi Ann Eslava
- Bryan Alfuente