Skip to content

Implement full exam feature workflow#40

Open
WaedBenkura wants to merge 1 commit into
Abse2001:mainfrom
WaedBenkura:main
Open

Implement full exam feature workflow#40
WaedBenkura wants to merge 1 commit into
Abse2001:mainfrom
WaedBenkura:main

Conversation

@WaedBenkura
Copy link
Copy Markdown
Collaborator

This PR implements the full class exam workflow for teachers and students, introducing a complete end-to-end exam system within the application.

It covers teacher-side exam creation, publishing, monitoring, grading, suspicious activity review, and retake handling, as well as student-side passcode entry, secure locked exam mode, answer submission, and controlled result release.

Introduced Features :

  1. Teacher exam management

  • Teachers can now create exams from the class Exam page.
photo_1_2026-05-06_19-20-14 photo_2_2026-05-06_19-20-14
  1. Exam list updates

The teacher Exam page now shows each exam with:

Status: Upcoming, Live, or Ended
Draft / published state
View, edit, publish, and delete actions

  • Ended exams also show whether grades are confirmed or still waiting for approval.
photo_3_2026-05-06_19-20-14
  • Publishing shows a success alert: “Exam published successfully.”
photo_4_2026-05-06_19-20-14
  1. Teacher monitoring

The exam detail view now includes summary cards for:

Suspicious students
Graded students
Students entered

  • Teachers can open student attempts to review answers, integrity events and manual grading fields
  • Suspicious attempts are highlighted and show alert counts.
photo_9_2026-05-06_19-20-14 photo_10_2026-05-06_19-20-14
  1. Student exam flow

  • Students see a scheduled exam lobby before the exam opens. When the exam becomes live, they must enter the teacher-provided passcode before starting.
photo_5_2026-05-06_19-20-14 photo_6_2026-05-06_19-20-14
  • The exam route is locked while the attempt is active.
photo_7_2026-05-06_19-20-14
  1. Secure exam mode

The student exam mode records suspicious behavior such as:
Leaving fullscreen
Switching focus
Hiding the exam tab/app

  • When the student exits fullscreen, a blocking dialog asks them to return to exam mode.
photo_8_2026-05-06_19-20-14
  1. Grading and results

  • MCQ answers are auto-graded.
  • Short-answer questions are auto-graded only when a model answer is provided. If the model answer is left empty, teacher grading is required.
  • Results stay hidden from students until the teacher approves/saves the grade. Released results are shown in the Results section with score, timestamps, answer summary, selected answers, and correct answers.
photo_11_2026-05-06_19-20-14

@vercel
Copy link
Copy Markdown

vercel Bot commented May 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
eduverse Ready Ready Preview, Comment May 6, 2026 6:00pm

Copy link
Copy Markdown
Collaborator

@ShiboSoftwareDev ShiboSoftwareDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move tests to the tests directory, it's way easier to review that way

@ShiboSoftwareDev
Copy link
Copy Markdown
Collaborator

when adding a new quesiton it should be the top one, for easier access
image

integrityEvents: [],
resultsReleasedAt: null,
},
] as any),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DONT USE TYPE any

Comment thread lib/supabase/server.ts
type SupabaseClient,
} from "@supabase/supabase-js"

let serverClient: SupabaseClient<any, "public", any> | null = null
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

@ShiboSoftwareDev
Copy link
Copy Markdown
Collaborator

two entries in one input box is not good UX
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants