University project

igive · UNSW COMP Assignment Automarking And Submission Engine

Connecting submission, automated tests, marking and feedback.

My contribution
Scrum Master · team design and delivery
Context
UNSW Computer Science capstone · team project
Focus
Software & AI
Site administration and course management.
Set Up Courses And Teaching RolesSite administration and course management.
igive architecture: React frontend, FastAPI backend, autotest execution and PostgreSQL.
igive architecture: React frontend, FastAPI backend, autotest execution and PostgreSQL.
Course administrator statistics dashboard.
Course OverviewCourse administrator statistics dashboard.
Assign tutors and organise course classes.
Set Up Courses And Teaching RolesAssign tutors and organise course classes.
Course administrator dashboard.
Create The AssignmentCourse administrator dashboard.
Create and configure an assignment.
Create The AssignmentCreate and configure an assignment.
Configure commands, input files and expected outputs for autotests.
Define The Automarking TestsConfigure commands, input files and expected outputs for autotests.
Student dashboard and assignment access.
Submit Work Through The Student DashboardStudent dashboard and assignment access.
Submit assignment files.
Submit Work Through The Student DashboardSubmit assignment files.
Inspect the detailed assignment-submission view.
Submit Work Through The Student DashboardInspect the detailed assignment-submission view.
Review submissions and marking before releasing results.
Run Tests And Review Submission ProgressReview submissions and marking before releasing results.
Tutor dashboard and assigned marking work.
Mark And Provide FeedbackTutor dashboard and assigned marking work.
Tutor assignment marking and feedback view.
Mark And Provide FeedbackTutor assignment marking and feedback view.
Assignment dashboard after results have been released.
Release The ResultsAssignment dashboard after results have been released.
Database Relationship Diagram
Architecture & Data ModelDatabase Relationship Diagram
Final UML Diagram for Proposal
Architecture & Data ModelFinal UML Diagram for Proposal
System Architecture
Architecture & Data ModelSystem Architecture

Experience In Practice

Skills Applied

View All Skills

How The System Fits Together

System Architecture

igive architecture: React frontend, FastAPI backend, autotest execution and PostgreSQL.
igive architecture: React frontend, FastAPI backend, autotest execution and PostgreSQL.

A Walk Through The Software

From Start To Finish

Follow an assignment from course setup and test creation to student submissions, automarking, tutor feedback and result release.

Step 01

Set Up Courses And Teaching Roles

Site administrators manage teaching periods, courses and course administrators. Within a course, staff organise classes and tutor assignments. These role-specific views connect the course structure with the people who submit and mark work.

Site administration and course management.
Site administration and course management.
Assign tutors and organise course classes.
Assign tutors and organise course classes.

Step 02

Create The Assignment

Course administrators create assignments within the course workspace. Assignment setup and test creation are separate tasks, allowing staff to define the assessment before configuring how submitted programs will be checked.

Course administrator dashboard.
Course administrator dashboard.
Create and configure an assignment.
Create and configure an assignment.

Step 03

Define The Automarking Tests

The test editor supports custom execution commands, optional input files and expected output comparisons. This evolved from a single input/output design to support command-line arguments, terminal output and multiple generated files.

Configure commands, input files and expected outputs for autotests.
Configure commands, input files and expected outputs for autotests.

Step 04

Submit Work Through The Student Dashboard

Students find their assignments from a role-specific dashboard and upload work through the submission page. The data model distinguishes an assignment from each student’s submission and its files, so marking and feedback remain attached to the correct work.

Student dashboard and assignment access.
Student dashboard and assignment access.
Submit assignment files.
Submit assignment files.
Inspect the detailed assignment-submission view.
Inspect the detailed assignment-submission view.

Step 05

Run Tests And Review Submission Progress

A course administrator triggers automarking against the current test set. The backend creates separate Docker execution environments for submissions, records outputs and makes results available for staff review. The project remains a capstone prototype; the report identifies further execution hardening and performance work.

Review submissions and marking before releasing results.
Review submissions and marking before releasing results.

Step 06

Mark And Provide Feedback

Tutors use their dashboard to reach the assignments they need to mark. The assignment view connects the submitted work with marking and feedback, while course administrators retain an overview of progress.

Tutor dashboard and assigned marking work.
Tutor dashboard and assigned marking work.
Tutor assignment marking and feedback view.
Tutor assignment marking and feedback view.

Step 07

Inspect Course Statistics

The statistics view gives course administrators an overview of submission activity and grade distribution. It complements individual marking views by showing the assessment across the course.

Course administration statistics for submission progress and results.
Course administration statistics for submission progress and results.

Step 08

Release The Results

Staff control when marks and feedback are released. The pending and released dashboard states distinguish internal marking work from the results made available to students.

Assignment dashboard after results have been released.
Assignment dashboard after results have been released.

One Assessment, Several Different Jobs

Students need a clear submission path. Tutors need to inspect work and provide feedback. Course administrators need to configure tests, oversee marks and control release. Site administrators manage courses and users.

I led design and delivery of the capstone system and managed sprints and user stories through Jira. The application itself was developed as a team; the architecture and features here describe that shared result.

Let Workflow Expose The Missing Data Model

Early designs did not sufficiently distinguish an assignment from each student's submission. As the interface and client requirements developed, the team added submission, submission-file and test-case records, plus the relationships needed for teaching classes.

This was a consequential design change: marking, file access, test output and release status all depend on identifying the correct submission rather than attaching everything directly to an assignment.

Make Automated Tests Understandable And Repeatable

The first test-case interface assumed a single input and output. The revised design added configurable commands and optional files, supporting both terminal output and generated-file comparisons.

Automarking moved into the backend. A course administrator could run submissions against the same current test set, with a separate Docker container for each submission to separate execution environments.

A Complete Prototype, With A Clear Next Step

The result connected course administration, student uploads, test execution, tutor marking, statistics and feedback release through role-specific pages. React handled the interface, FastAPI exposed the application logic and PostgreSQL stored the relationships.

The report also recorded the next engineering priorities: stronger authentication and input handling, more robust assessment rules, and faster test execution. The system was a capstone prototype, with further hardening needed before institutional deployment.

The Engineering Journey

Define

Translate four user roles and client requests into stories and workflows.

Refine

Revise the data model and test editor as realistic assignments exposed gaps.

Deliver

Integrate submission, containerised tests, marking and controlled feedback release.

What This Experience Achieved

The result

A working team prototype covering four user roles and the submission-to-feedback cycle, delivered through client-facing sprints.

Technical decisions & tools

React, Axios and MUI formed the frontend; Python/FastAPI handled backend services; PostgreSQL represented users, teaching periods, classes, assignments, submissions and test cases.

The project report describes Cypress UI tests and container-based development. Known prototype security and performance limitations are kept in scope when describing the outcome.

ReactFastAPIPostgreSQLDockerJiraCypress