Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playground: Side-by-Side Expert Evaluation #345

Merged
merged 77 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
bafba4b
Add support for icons
DominikRemo Sep 16, 2024
114a20c
Optionally hide details from inline feedback
DominikRemo Sep 23, 2024
b9db380
Add expert view and temporary auxilaries
DominikRemo Sep 23, 2024
97b77a6
extend side-by-side-tool
laadvo Oct 3, 2024
350809a
fetch submissions and feedback together with exercises
laadvo Oct 4, 2024
aedab07
Implemented UI for Evaluation Config
DominikRemo Oct 4, 2024
899b763
Add option for html in metrics
DominikRemo Oct 4, 2024
3a8678f
Merge branch 'develop' into feature/side-by-side-tool
DominikRemo Oct 7, 2024
833a3db
Add Markdown Support for Metric Descriptions
DominikRemo Oct 7, 2024
455546d
Consolidate Metric and ExpertEvaluationConfig Definitions in Model
DominikRemo Oct 7, 2024
1d848e5
Refactor Exercise Selection Logic and Fix Config Sync Bug
DominikRemo Oct 7, 2024
291a0f8
Improve format for Evaluation Management Component
DominikRemo Oct 7, 2024
8c6bad3
Improvements to ExpertEvaluationConfig
DominikRemo Oct 8, 2024
18702d1
remove feedback details and distinguish editors
laadvo Oct 9, 2024
249c5f8
Make Header Sticky and Optimize Layout in Expert View Header
DominikRemo Oct 9, 2024
ed75936
load data from config json
laadvo Oct 13, 2024
a661d15
save and load expert evaluation progress
laadvo Oct 14, 2024
1bbc3dd
Attempt at saving config
DominikRemo Oct 15, 2024
d9c5fa4
Attempt at saving config
DominikRemo Oct 15, 2024
92502f0
Added started attribute to EvaluationConfig
DominikRemo Oct 15, 2024
9c54297
support multiple experts
laadvo Oct 15, 2024
c69d83f
Expert Link Generation
DominikRemo Oct 15, 2024
50f1e29
Merge branch 'feature/side-by-side-tool' of https://github.com/ls1int…
DominikRemo Oct 15, 2024
af54e7f
Update metrics_form.tsx
DominikRemo Oct 15, 2024
8c51d61
Hide buttons if disabled
DominikRemo Oct 15, 2024
8c15ca5
improve config saving and anonymize when sending to client
laadvo Oct 21, 2024
3da3ef6
undo part of anonymization
laadvo Oct 21, 2024
25a23c5
Replace Exercise Selection with Import
DominikRemo Oct 21, 2024
9c82b87
Improve Metrics form
DominikRemo Oct 21, 2024
c573e81
Remove temporary header with redirect to expert view
DominikRemo Oct 21, 2024
f6738d3
Improve markdown in popup
DominikRemo Oct 21, 2024
6402a92
Add Exercise Details to Popup
DominikRemo Oct 22, 2024
232e680
Merge branch 'develop' into feature/side-by-side-tool
DominikRemo Oct 22, 2024
fadfc0c
add anonymization
laadvo Oct 22, 2024
c82d41a
Merge remote-tracking branch 'origin/feature/side-by-side-tool' into …
laadvo Oct 22, 2024
65b78d3
Introduce Metric Ids
DominikRemo Oct 22, 2024
288eb06
Merge branch 'feature/side-by-side-tool' of https://github.com/ls1int…
DominikRemo Oct 22, 2024
b42a6cf
Adapted likert scale with better UI and UX
DominikRemo Oct 23, 2024
1fa25b8
Merge branch 'develop' into feature/side-by-side-tool
DominikRemo Oct 24, 2024
dc13d66
Implemented download button
DominikRemo Oct 26, 2024
c7361a3
Implemented endpoint for download
DominikRemo Oct 26, 2024
b4e2561
Removing some lava flow
DominikRemo Oct 26, 2024
6307158
Remove redundant states from EvaluationManagement
DominikRemo Oct 26, 2024
141ec5d
Improve Evaluation Management UX
DominikRemo Oct 26, 2024
77f8432
Add progress bar to Evaluation Management
DominikRemo Oct 27, 2024
b023c4c
Minor improvements in evaluation management
DominikRemo Oct 27, 2024
ebdf6cd
add welcome and congratulation screen
laadvo Oct 28, 2024
1bebc08
Merge remote-tracking branch 'origin/feature/side-by-side-tool' into …
laadvo Oct 28, 2024
b6675c3
save config state on start
laadvo Oct 28, 2024
d6c4f3d
add react confetti to package.json
laadvo Oct 28, 2024
7a81e36
add screens
laadvo Oct 28, 2024
30ab9c1
add tutorial
laadvo Oct 29, 2024
640dd47
remove TODOs
laadvo Oct 29, 2024
b7f816c
undo tailwind.config change
laadvo Oct 29, 2024
754e5b4
add highlighting and confirmations
laadvo Oct 30, 2024
a87d710
add buttons to tutorial
laadvo Oct 30, 2024
5cd0694
make buttons reusable
laadvo Oct 30, 2024
0732771
fix adding new expert after evaluation defined bug
laadvo Oct 30, 2024
c208a9d
remove unneeded code
laadvo Nov 3, 2024
646706d
authorization using secret
laadvo Nov 4, 2024
508da73
remove button export check
laadvo Nov 4, 2024
30c8a0b
Remove window.close()
DominikRemo Nov 5, 2024
2610656
Convert images to jpeg and optimize them
DominikRemo Nov 5, 2024
cc2b271
Merge branch 'develop' into feature/side-by-side-tool
DominikRemo Nov 5, 2024
3066a74
welcome screen corrections
laadvo Nov 5, 2024
f669003
Merge remote-tracking branch 'origin/feature/side-by-side-tool' into …
laadvo Nov 5, 2024
0b8daa9
remove secret authorization
laadvo Nov 8, 2024
ca11105
Fix build
DominikRemo Nov 11, 2024
baf3867
Code formatting.
DominikRemo Nov 11, 2024
308ef5d
Restore .env.example
DominikRemo Nov 11, 2024
d4238ae
Unchange .env.example
DominikRemo Nov 11, 2024
1438780
Add missing newline
DominikRemo Nov 11, 2024
af8c89e
add gitkeep to expert_evaluation data folder
laadvo Nov 12, 2024
d73a07f
fix confirmation and is_finished
laadvo Nov 12, 2024
b1856f2
Fix off by one fault
DominikRemo Nov 12, 2024
bd3fba8
Remove redundant data mode constant.
DominikRemo Nov 18, 2024
9d9c852
Pin dependencies
DominikRemo Nov 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
123 changes: 107 additions & 16 deletions playground/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions playground/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
},
"dependencies": {
"@blueprintjs/core": "5.5.1",
"@fortawesome/fontawesome-svg-core": "6.6.0",
"@fortawesome/free-solid-svg-icons": "6.6.0",
"@fortawesome/react-fontawesome": "0.2.2",
"@ls1intum/apollon": "3.3.5",
"@monaco-editor/react": "4.6.0",
"@radix-ui/react-collapsible": "1.0.3",
Expand All @@ -31,6 +34,7 @@
"react": "18.2.0",
"react-complex-tree": "2.2.2",
"react-complex-tree-blueprintjs-renderers": "2.2.2",
"react-confetti": "6.1.0",
"react-dom": "18.2.0",
"react-full-screen": "1.1.1",
"react-markdown": "9.0.0",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions playground/src/components/details/editor/file_editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ type FileEditorProps = {
createNewFeedback?: () => Feedback;
manualRatings?: ManualRating[];
onManualRatingsChange?: (manualRatings: ManualRating[]) => void;
hideFeedbackDetails?: boolean;
};

export default function FileEditor({
Expand All @@ -38,6 +39,7 @@ export default function FileEditor({
createNewFeedback,
manualRatings,
onManualRatingsChange,
hideFeedbackDetails
}: FileEditorProps) {
const monaco = useMonaco();
const editorRef = useRef<editor.IStandaloneCodeEditor>();
Expand Down Expand Up @@ -358,6 +360,7 @@ export default function FileEditor({
}
model={model}
className="mr-4"
hideDetails={hideFeedbackDetails}
/>
</EditorWidget>
)
Expand Down
48 changes: 26 additions & 22 deletions playground/src/components/details/editor/inline_feedback.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type InlineFeedbackProps = {
onManualRatingChange?: (manualRating: ManualRating) => void;
model?: editor.ITextModel;
className?: string;
hideDetails?: boolean;
};

export default function InlineFeedback({
Expand All @@ -28,6 +29,7 @@ export default function InlineFeedback({
onManualRatingChange,
model,
className,
hideDetails,
}: InlineFeedbackProps) {
const [isEditing, setIsEditing] = useState(false);
const [confirmDelete, setConfirmDelete] = useState(false);
Expand Down Expand Up @@ -145,29 +147,31 @@ export default function InlineFeedback({
onMouseEnter={() => setIsHovering(true)}
onMouseLeave={() => setIsHovering(false)}
>
<div className="flex items-center justify-between px-4 py-2 border-b border-gray-300 text-xs text-gray-600">
<div className="break-all">
{referenceType === "unreferenced" && "Unreferenced"}
{"file_path" in feedback &&
referenceType === "unreferenced_file" &&
`References ${feedback.file_path}`}
{referenceType === "referenced" &&
`References ${formatReference(feedback)}`}
</div>
<div className="flex gap-1">
{feedback.structured_grading_instruction_id && (
<span className="text-xs text-orange-800 rounded-full px-2 py-0.5 bg-orange-100">
Grading&nbsp;Instruction&nbsp;
{feedback.structured_grading_instruction_id}
</span>
)}
{feedback.isSuggestion && (
<span className="text-xs text-violet-800 rounded-full px-2 py-0.5 bg-violet-100">
Suggestion
</span>
)}
{hideDetails ? null : (
<div className="flex items-center justify-between px-4 py-2 border-b border-gray-300 text-xs text-gray-600">
<div className="break-all">
{referenceType === "unreferenced" && "Unreferenced"}
{"file_path" in feedback &&
referenceType === "unreferenced_file" &&
`References ${feedback.file_path}`}
{referenceType === "referenced" &&
`References ${formatReference(feedback)}`}
</div>
<div className="flex gap-1">
{feedback.structured_grading_instruction_id && (
<span className="text-xs text-orange-800 rounded-full px-2 py-0.5 bg-orange-100">
Grading&nbsp;Instruction&nbsp;
{feedback.structured_grading_instruction_id}
</span>
)}
{feedback.isSuggestion && (
<span className="text-xs text-violet-800 rounded-full px-2 py-0.5 bg-violet-100">
Suggestion
</span>
)}
</div>
</div>
</div>
)}
<div className="flex justify-start items-start space-x-2 px-4 py-2">
{isEditing && onFeedbackChange ? (
<input
Expand Down
6 changes: 3 additions & 3 deletions playground/src/components/details/exercise_detail/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default function ExerciseDetail({
const specificExerciseDetail = (() => {
switch (exercise.type) {
case "text":
return <TextExerciseDetail exercise={exercise} openedInitially={openedInitially}/>;
return <TextExerciseDetail exercise={exercise} openedInitially={openedInitially} />;
case "programming":
return <ProgrammingExerciseDetail exercise={exercise} openedInitially={openedInitially} />;
default:
Expand All @@ -29,7 +29,7 @@ export default function ExerciseDetail({
})();

return hideDisclosure ? (
<div className="mt-2 space-y-1">
<div className="mt-2 space-y-1 w-full lg:w-[60vw] max-h-[50vh] overflow-y-auto overflow-x-hidden flex flex-col">
<CommonExerciseDetail exercise={exercise} openedInitially={openedInitially} />
{specificExerciseDetail}
</div>
Expand All @@ -40,7 +40,7 @@ export default function ExerciseDetail({
openedInitially={openedInitially}
>
<>
<CommonExerciseDetail exercise={exercise}/>
<CommonExerciseDetail exercise={exercise} />
{specificExerciseDetail}
</>
</Disclosure>
Expand Down
4 changes: 4 additions & 0 deletions playground/src/components/details/submission_detail/text.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ type TextSubmissionDetailProps = {
onFeedbacksChange?: (feedback: Feedback[]) => void;
manualRatings?: ManualRating[];
onManualRatingsChange?: (manualRatings: ManualRating[]) => void;
hideFeedbackDetails?: boolean;
};

export default function TextSubmissionDetail({
Expand All @@ -23,6 +24,7 @@ export default function TextSubmissionDetail({
onFeedbacksChange,
manualRatings,
onManualRatingsChange,
hideFeedbackDetails,
}: TextSubmissionDetailProps) {
const unreferencedFeedbacks = feedbacks?.filter(
(feedback) => getFeedbackReferenceType(feedback) === "unreferenced"
Expand All @@ -41,6 +43,7 @@ export default function TextSubmissionDetail({
manualRatings={manualRatings}
onManualRatingsChange={onManualRatingsChange}
createNewFeedback={() => createNewFeedback(submission)}
hideFeedbackDetails={hideFeedbackDetails}
/>
</div>
{((unreferencedFeedbacks && unreferencedFeedbacks.length > 0) ||
Expand All @@ -64,6 +67,7 @@ export default function TextSubmissionDetail({
onManualRatingsChange &&
createManualRatingItemUpdater(feedback.id, manualRatings, onManualRatingsChange)
}
hideDetails={hideFeedbackDetails}
/>
)
)}
Expand Down
Loading
Loading