Java Submission and Exam System

Automates submission, grading, and feedback for Java assignments and exams using GitLab as the central platform and a secure Flex Client exam environment.

Idea
Plan
Prototype
Pilot
Live

Overview

Value: Automates submission, grading, and feedback for Java assignments and exams using GitLab as the central platform and a secure Flex Client exam environment.

Problem: GitLab features used: CI/CD for automated evaluation; repository templates for exams, projects, and homework; milestones to plan due dates; issues for bug tracking and communication; artifacts to store test reports; protected branches to prevent late commits. Flex Client: an isolated desktop exam environment usable in labs or online exams; restricts access to external programs, files, and the internet; automatically launches the GitLab repository and editor (e.g., VS Code in read‑only mode). Further information: https://git.fh-aachen.de/exam/doc

Solution: Automated execution, grading, and feedback for Java submissions and exams with GitLab as the central platform and Flex Client as the secure exam environment.

Who Benefits

Primary

  • Students
    • Immediate feedback on submissions
    • Consistent evaluation criteria
    • Secure exam environment
    • Clear grading transparency
  • Instructors
    • Automated grading process
    • Reduced correction time
    • Standardized evaluation
    • Fraud prevention during exams

Secondary

  • System Administrators
    • Centralized evaluation infrastructure
    • Scalable assessment system
    • Reduced manual intervention

When to Use

  • Java programming courses
  • Automated testing requirements
  • Large student cohorts
  • Secure exam environments needed
  • Standardized grading criteria

When Not to Use

  • Non-programming subjects
  • Subjective evaluation criteria
  • Small class sizes with manual grading preference
  • Languages other than Java without tooling support

Process

  1. Students receive assignment in private GitLab repository
  2. Implement solution using provided templates and requirements
  3. Submit code via Git commit before deadline
  4. GitLab CI/CD automatically runs tests (JUnit, Checkstyle, SonarQube)
  5. Results stored as artifacts and grades calculated
  6. Instructors review automated results and provide final grades

Requirements

People

  • Students
  • Java Instructors
  • System Administrators
  • Technical Support Staff

Data Inputs

  • Assignment specifications
  • Java source code
  • Test cases
  • Grading rubrics

Tools & Systems

  • GitLab with CI/CD
  • Java Development Environment
  • JUnit testing framework
  • Checkstyle
  • SonarQube
  • Flex Client
  • GitLab Runner (Docker-based)

Policies & Compliance

  • Academic integrity policies
  • Student data privacy
  • Exam security requirements
  • Grade retention policies

Risks & Mitigations

  • System failure during exam deadlines

    • High availability GitLab setup
    • Backup evaluation systems
    • Extended deadline procedures
    • Real-time monitoring
  • Students bypassing Flex Client security

    • Comprehensive security controls
    • Activity monitoring
    • Violation detection
    • Backup proctoring methods
  • False positive/negative in automated testing

    • Comprehensive test suites
    • Manual review processes
    • Appeal procedures
    • Test case validation

Getting Started

To implement this use case, you need GitLab with CI/CD, Java development environment, testing frameworks, and Flex Client for secure examinations.

  1. Set up GitLab instance with appropriate authentication and user management
  2. Configure CI/CD pipelines with Java, JUnit, Checkstyle, and SonarQube
  3. Install and configure Flex Client for secure exam environment
  4. Create assignment templates and automated test suites
  5. Train instructors and students on system usage

FAQ

What is Flex Client and how does it work?

Flex Client is an isolated desktop application that creates a secure exam environment by restricting access to external programs and internet while providing necessary development tools.

Can students get partial credit for partially working solutions?

Yes, the automated testing system can be configured to award partial points based on passed test cases and code quality metrics.

How are late submissions handled?

GitLab's protected branches prevent commits after deadlines, but instructors can adjust permissions for exceptional cases.

Glossary

Flex Client
Isolated desktop application providing secure examination environment for programming assessments
JUnit
Unit testing framework for Java programming language
Checkstyle
Tool for checking Java code against coding standards and style guidelines
SonarQube
Platform for continuous inspection of code quality and security vulnerabilities
0