Hybrid Assignment Evaluation in LMS: Automation and Expert Review

With the growing number of students, grading homework becomes a bottleneck in any LMS. An instructor physically cannot review 500 submissions in 24 hours, and quality suffers. We solve this with a hybrid approach: automatic grading for quizzes and code, and an optimized interface for manual grading

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1320
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1276
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1019
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1075
  • Website development for SBH Partners
    Website development for SBH Partners
    1137
  • Website development for Red Pear
    Website development for Red Pear
    575

With the growing number of students, grading homework becomes a bottleneck in any LMS. An instructor physically cannot review 500 submissions in 24 hours, and quality suffers. We solve this with a hybrid approach: automatic grading for quizzes and code, and an optimized interface for manual grading of essays and complex assignments. Our experience shows that up to 70% of typical assignments can be auto-graded, reducing instructor time by 3–5x. For example, in a university project, we implemented automatic code grading in Python — the instructor now grades 200 submissions in 1 hour instead of 5. Budget savings on grading reach 40% compared to manual labor, translating to an average of $8,000 saved per semester for mid-sized institutions. Development cost starts at $5,000, with typical ROI achieved in 2–4 months. We ensure scalability up to 1000 concurrent checks and provide feedback on every submission. Average development time is 2–3 weeks. In this article, we'll share how we design a grading system, what components are included, and how you can order such a turnkey development.

What Problems Does Hybrid Grading Solve?

Instructor overload. Manual grading of 50+ submissions per day leads to burnout and errors. Automation removes the routine: the instructor only reviews complex assignments, while quizzes and code are graded automatically.

Diverse assignments. A single course may include quizzes, essays, code, and files. A universal system must support all formats. We integrate grading rubrics, inline PDF annotations, and a Docker sandbox for code.

Plagiarism. Text borrowing and code copying are common. Integration with Unicheck and MOSS (or a custom engine on TF-IDF) flags suspicious submissions before the instructor even sees them.

How We Implement Manual Grading

The grading interface must minimize context switching. On one screen: the student's work on the left, evaluation form on the right. Key components we implement:

  • List of ungraded submissions with filters by assignment, group, date
  • View student answer (text, inline file, or link)
  • Grading rubric with checkboxes (if criteria are defined)
  • Score field and text comment with Markdown support
  • Buttons: "Accept", "Return for revision", "Next submission"
  • Inline annotations on PDF (if the work is in PDF format)

For quiz-type assignments with correct answers, we implement batch grading: the instructor sees a table of all submissions with answers and can assign scores in bulk.

How Automatic Grading Works

Quiz / closed-ended tests:

async function autoGradeQuizSubmission(submissionId) { const submission = await db.submissions.findOne(submissionId, { include: ['assignment.questions'] }); let totalPoints = 0; let earnedPoints = 0; const results = []; for (const question of submission.assignment.questions) { totalPoints += question.points; const studentAnswer = submission.answers[question.id]; const isCorrect = checkAnswer(question, studentAnswer); if (isCorrect) earnedPoints += question.points; results.push({ questionId: question.id, correct: isCorrect, studentAnswer, correctAnswer: question.correctAnswer, }); } const score = Math.round((earnedPoints / totalPoints) * submission.assignment.maxScore); await db.submissions.update(submissionId, { status: 'graded', score, autoGradeResults: results, gradedAt: new Date(), }); await notifyStudent(submission.studentId, submissionId, score); } 

Code grading via tests: For programming courses, we run student code in isolated Docker containers against a test suite. This guarantees security and reproducibility.

async function runCodeTests(submissionId, code, language, testCases) { const result = await dockerRunner.run({ image: `lms-runner-${language}:latest`, // python:3.11, node:20, etc. code, tests: testCases, timeout: 10000, // 10 seconds memoryLimit: '256m', networkDisabled: true, // No network in sandbox }); return { passed: result.passedTests, total: testCases.length, output: result.stdout, errors: result.stderr, executionTime: result.durationMs, }; } 
Example Dockerfile for Python grading
FROM python:3.11-slim RUN pip install pytest COPY tests/ /tests/ ENTRYPOINT ["pytest", "/tests/"] 

Plagiarism detection: For text — integration with Unicheck or MOSS (for code). We can also implement a custom system using TF-IDF vectorization and cosine similarity if full data control is required. Plagiarism detection can save up to 40% of the grading budget.

Why Automated Code Grading Is Faster Than Manual

Automated code grading completes in seconds, while an instructor spends 5–10 minutes per submission. Compare: 200 students × 7 minutes = 23 hours of manual work versus 40 minutes of automated. Time savings of 30x. Grading quality does not suffer: tests cover all edge cases, and the sandbox ensures security.

What Is Included in the Work?

  • Analysis and design. We define assignment types, rubric requirements, integrations with Unicheck/MOSS. Create use cases and interface prototype.
  • Manual grading module. Interface with filters, rubrics, annotations, and batch grading.
  • Automatic test and code grading. Implement quiz engine and Docker runner with configurable tests.
  • Anti-plagiarism. Integration with Unicheck/MOSS or custom TF-IDF system.
  • Notifications and workflow. Configure events, email/in-app notifications, status chain submitted→reviewing→graded→returned.
  • Documentation and training. Technical API docs, user guide for instructors, and a live training session.
  • Post-deployment support. 2-week warranty period, then optional maintenance contract.

Implementation Process

  1. Analysis. Determine assignment types, rubric requirements, integrations. Compose use cases.
  2. Design. Design API for grading, instructor interface, status workflow. Choose stack: React + TypeScript frontend, Laravel or Node.js backend, Docker for sandbox.
  3. Development. Implement manual and automatic modules, connect Docker runner, configure notifications.
  4. Testing. Load testing up to 1000 concurrent checks. Unit test coverage for key scenarios.
  5. Deployment. Deploy on server (Docker-compose or Kubernetes). Train instructors.

Status Workflow

submitted ↓ (auto-grade or manual) reviewing ↓ instructor opens work graded → notify student returned → student receives notification, can revise ↓ resubmitted resubmitted → back to reviewing 

Notifications

Event Recipient Channel
Work submitted Instructor Email + in-app
Deadline in 24h Students without submission Email
Work graded Student Email + in-app
Work returned Student Email + in-app
Queue > 20 works Instructor Email (digest)

Timeline Estimates

Component Duration
Manual grading interface with rubrics and annotations 5–7 days
Automatic quiz and test grading 3–4 days
Code sandbox with Docker runner 5–7 days
Anti-plagiarism 3–5 days

We have over 8 years on the market and have delivered over 100 projects for LMS. The cost of developing a hybrid grading system varies based on complexity, but on average it pays for itself within 2–4 months. Contact us for a preliminary assessment of your project — we'll prepare a tailored proposal. Request a consultation now — we'll evaluate your project for free.