Skip to content

About

Secure online quiz and assessment platform with proctoring, quiz management, student assessments, and real-time monitoring.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ProctorPal

ProctorPal is a web-based online examination and proctoring platform designed to support secure, organized, and efficient online assessments.

The platform brings together authentication, quiz and examination management, reusable quiz-bank questions, student examination attempts, browser-based proctoring, results, reporting, and Supabase-backed data management in a single application.


Overview

Online examinations require more than simply presenting questions and collecting answers. ProctorPal provides a structured examination workflow for both instructors and students.

The application is built around authenticated user workflows and provides dedicated functionality for:

  • Creating and managing quizzes
  • Managing reusable quiz-bank questions
  • Joining and attempting examinations
  • Browser-based webcam proctoring
  • Viewing examination results
  • Reviewing student attempts
  • Generating and viewing reports
  • Managing user profiles
  • Maintaining application data through Supabase

The project is built using React and TypeScript with Vite and TanStack technologies on the frontend and Supabase for backend and database functionality.


Key Features

Authentication

  • User registration
  • User login
  • Password recovery
  • Password reset
  • Authenticated application routes
  • Protected user workflows
  • Profile management

Quiz Management

  • Quiz listing
  • Quiz creation
  • Quiz editing
  • Quiz details
  • Quiz joining
  • Examination workflows
  • Student quiz attempts
  • Quiz results

Quiz Bank

  • Dedicated quiz-bank interface
  • Reusable examination questions
  • Question management
  • Supabase-backed quiz-bank data
  • Seed data for initial quiz-bank content

Online Proctoring

  • Browser-based proctoring functionality
  • Webcam integration
  • Camera permission handling
  • Proctoring logic separated into a dedicated application module
  • Proctoring support during examination workflows

Reports and Results

  • Student result viewing
  • Quiz-level reporting
  • Attempt-specific reporting
  • Examination reports
  • Review of student attempts
  • Assessment performance information

Application Architecture

  • Protected authenticated routes
  • Modular application structure
  • Reusable React components
  • Dedicated hooks
  • Separated authentication logic
  • Separated quiz logic
  • Dedicated proctoring modules
  • Supabase integration
  • TypeScript database types

User Workflows

Teacher Workflow

Teachers can use ProctorPal to manage examinations and review student performance.

Teacher-oriented functionality includes:

  • Accessing the authenticated dashboard
  • Creating quizzes
  • Editing quizzes
  • Managing quiz questions
  • Using the quiz bank
  • Viewing quiz information
  • Reviewing examination attempts
  • Accessing reports
  • Reviewing assessment results
  • Managing examination-related workflows

The exact permissions available to a user depend on the application's configured authentication and database policies.


Student Workflow

Students can use ProctorPal to participate in online examinations.

The student workflow includes:

  1. Creating or accessing an account
  2. Logging into the application
  3. Accessing the authenticated dashboard
  4. Joining an available examination
  5. Starting a quiz attempt
  6. Completing examination questions
  7. Using browser-based proctoring where enabled
  8. Submitting the examination
  9. Viewing the resulting assessment information
  10. Reviewing previous quiz activity

Quiz and Examination System

ProctorPal provides a complete examination workflow covering the main stages of online assessment.

Quiz Management

The application provides dedicated workflows for:

  • Quiz listing
  • Quiz creation
  • Quiz editing
  • Quiz details
  • Quiz joining
  • Student attempts
  • Results
  • Reports

Quiz-related application logic is organized primarily under:

src/lib/quizzes/

This module contains:

  • Quiz data access (quiz-data.ts) — loading quiz questions and options for editing
  • Quiz operations (quiz.functions.ts) — creating, updating, publishing, and deleting quizzes; managing questions and options; quiz enrollment lists
  • Student operations (student.functions.ts) — joining quizzes by access code, starting attempts, submitting answers, and retrieving results
  • Quiz-bank operations (quiz-bank.functions.ts) — reusable question bank queries, subject listing, and generating quiz versions
  • Validation schemas (schemas.ts) — Zod schemas for quiz and question data
  • Shared types (types.ts) — quiz-bank and UI component types

Student Attempts

  • Students join a quiz using an access code (or a QR code)
  • Each attempt is recorded with start and submission timestamps
  • Answers are graded against the correct options and scored automatically
  • Attempt status is tracked as not_started, in_progress, or completed

Proctoring

Proctoring logic is kept in dedicated modules under:

src/lib/proctoring/
src/components/proctoring/
  • Webcam capture and face detection (use-webcam-proctor.ts)
  • Fullscreen and focus lockdown (use-lockdown.ts)
  • Proctored session orchestration (ProctoredSession.tsx)
  • Session timer (quiz-timer.tsx)

Proctoring events, snapshots, and risk scores are stored in Supabase and surfaced in attempt reports.

Results and Reports

  • Students review their scores on the result page
  • Teachers view quiz-level reports with per-attempt risk, scores, and critical-event counts
  • Attempt detail pages show an event timeline, snapshots, face verification, and risk bands

Project Structure

src/
  components/        Reusable UI and proctoring components
  integrations/      Supabase client setup and generated database types
  lib/               Application logic (auth, quizzes, proctoring, config)
  routes/            File-based TanStack Router routes

Technology Stack

  • Frontend: React, TypeScript, Vite, TanStack Router, TanStack Start, TanStack Query
  • Styling: Tailwind CSS and shadcn-style UI components
  • Backend: TanStack Start server functions
  • Database: Supabase (PostgreSQL) with generated TypeScript types
  • Proctoring: Webcam capture, face detection, fullscreen lockdown, and event logging in the browser

Getting Started

  1. Install dependencies:

    npm install
  2. Configure environment variables (see .env):

    • SUPABASE_URL
    • SUPABASE_PUBLISHABLE_KEY / VITE_SUPABASE_URL / VITE_SUPABASE_PUBLISHABLE_KEY
    • SUPABASE_SERVICE_ROLE_KEY (server-side only)
  3. Start the development server:

    npm run dev
  4. Build for production:

    npm run build

About

Secure online quiz and assessment platform with proctoring, quiz management, student assessments, and real-time monitoring.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages