
Engineering
Automated Code Evaluation at Classroom Scale Using GitHub Actions
2024✦︎7 min read
The Challenge
Grading 120+ Java assignments manually every week is unsustainable. Each submission requires compilation, execution against test cases, and feedback generation. This project automates the entire pipeline.
System Architecture
CI/CD Pipeline
name: Java Assignment Evaluation
on:
push:
branches: [main]
jobs:
evaluate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Compile
run: javac *.java
- name: Run Tests
run: java -jar junit-platform.jar
Key Components
1. Automated Compilation - Catches syntax errors immediately 2. Test Suite Execution - Runs predefined test cases 3. Result Dashboard - Cloudflare Pages deployment for instant feedback
Impact
Lessons Learned
Building for real classroom constraints taught me more about systems design than any theoretical exercise.