import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import RubricBuilder from './RubricBuilder'; import './GradingSystem.css'; import { getRubric } from './SubmissionsPage'; export function GradingSystem() { const [isBuilding, setIsBuilding] = useState(false); const [currentRubric, setCurrentRubric] = useState(null); const navigate = useNavigate(); const parseRubricToString = (rubric) => { let rubricString = "RUBRIC:\n\n"; rubric.questions.forEach((question, qIndex) => { rubricString += `QUESTION ${qIndex + 1} (${question.points} points):\n`; rubricString += `${question.text}\n\n`; rubricString += "Grading Criteria:\n"; question.criteria.forEach((criterion, cIndex) => { const pointSign = criterion.points >= 0 ? '+' : ''; rubricString += `${cIndex + 1}. [${pointSign}${criterion.points} points] ${criterion.description}\n`; }); rubricString += "\n---\n\n"; }); getRubric(rubricString); return rubricString; }; const handleRubricComplete = (rubric) => { const rubricString = parseRubricToString(rubric); console.log(rubricString); // For testing - you can see the output in console setCurrentRubric(rubric); setIsBuilding(false); }; return (
{!isBuilding && !currentRubric && (

Welcome to TAI

An advanced AI-powered assessment engine that leverages cutting-edge large language models (LLMs) to decipher and evaluate handwritten tests and homework with human-like precision. Utilizing a custom-designed grading rubric and intelligent analysis, TAI ensures fair, consistent, and insightful feedback, transforming the academic evaluation process with unparalleled efficiency.

Custom Rubrics

Create detailed grading criteria

Fast Grading

Grade multiple submissions quickly

Detailed Analytics

Get comprehensive grading insights

Easy Upload

Support for PDF and images

)} {isBuilding && ( setIsBuilding(false)} /> )} {currentRubric && (

Completed Rubric

{currentRubric.questions.map((question, index) => (

Question {index + 1}

{question.points} Points

{question.text}

{question.criteria.map((criterion, cIndex) => (
= 0 ? 'points-positive' : 'points-negative'}> {criterion.points >= 0 ? '+' : ''}{criterion.points} pts {criterion.description}
))}
))}
)}
); } export default GradingSystem;