স্কিপ করে মূল কন্টেন্ট এ যান

Assignments

Assign online and offline exams to individual students, sections, or entire classes, and track completion in real time.

Overview

The Assignments system in Testify lets you distribute exams to your students with optional due dates. You can assign to individual students, entire sections, or full classes -- the system automatically expands group assignments to individual student records. Students receive push notifications and in-app alerts when a new exam is assigned. You can track who has started, completed, or missed their assignments from a single dashboard.

Assigning an Online Exam

Step-by-Step

  1. Open the Exam

    • Navigate to "Exams" in the sidebar
    • Click on the exam you want to assign

    Exam List

  2. Click "Assign"

    • Click the "Assign Exam" button in the exam toolbar
  3. Select Assignment Scope

    Choose one or more of the following:

    Individual Students:

    • Search for students by name or email
    • Click to add each student to the assignment list
    • Useful for remedial or supplementary assignments

    By Section:

    • Select one or more sections from the dropdown
    • All students in those sections are automatically included
    • The system looks up students via the class_members table with role = 'student'

    By Class:

    • Select one or more classes from the dropdown
    • All students in those classes (across all sections) are included
    • Best for class-wide exams

    Assign Exam Form

  4. Set Due Date (optional)

    • Pick a date and time by which students should complete the exam
    • If not set, the assignment has no deadline
  5. Confirm Assignment

    • Click "Assign"
    • The system creates individual assignment records for each student
    • Each assignment record includes:
      • status: "assigned"
      • assignment_type: "individual", "section", or "class"
      • assigned_at: Current timestamp
    • If a student is already assigned (e.g., via both section and class), the existing record is updated rather than duplicated
  6. Student Notifications

    • Assigned students automatically receive:
      • In-app notification: "New Exam Assigned" with exam title, duration, and start time
      • Push notification: Sent to mobile and web devices
    • Notifications are sent in the background and do not block the assignment process

    Assignment Notification

Tip: Assigning by section or class is much faster than adding students individually. Set up your classes and sections first in Classroom Management.

Assigning an Offline Exam

The process is identical to online exam assignments.

  1. Navigate to "Offline Exams"
  2. Open the offline exam
  3. Click "Assign Exam"
  4. Select students, sections, or classes
  5. Set a due date (optional)
  6. Click "Assign"

The offline exam assignment tracks:

  • Assignment status (assigned, in_progress, completed, overdue)
  • Submission count (number of OMR sheets scanned for this student)
  • Completion timestamp (when status changes to "completed")

Viewing Assignment Status

For a Specific Exam

  1. Open the Exam

    • Navigate to the exam (online or offline)
  2. Click "Assignments" Tab

    • The assignments list shows all students assigned to this exam
  3. Assignment Details

    • Each row displays:
      • Student Name (first name + last name)
      • Email
      • Class and Section (if assigned via group)
      • Assigned Date
      • Due Date (if set)
      • Status: assigned, in_progress, completed, or overdue
      • Attempt Count: Number of times the student has attempted the exam
      • Best Score (for online exams): Highest score across all attempts

    Assignment Status

  4. Sort and Filter

    • Sort by name, date, or status
    • Filter by class or section to focus on specific groups

For a Student (Student View)

Students see their assigned exams on their dashboard:

  1. My Assignments
    • Lists all exams assigned to the student
    • Each entry shows:
      • Exam title and description
      • Duration and total marks
      • Start time and end time (for scheduled exams)
      • Exam status (draft, published, active, ended)
      • Number of attempts made
      • Best score achieved

Tracking Completion

Online Exam Completion

  • When a student submits an exam attempt, the system records it
  • The attempt_count on the assignment updates automatically
  • The best_score shows the highest marks obtained across all submitted attempts
  • Status does not automatically change -- teachers can monitor via attempt count

Offline Exam Completion

  • When an OMR sheet is scanned and verified for a student, the submission_count updates
  • Teachers can manually update assignment status:
    • assigned -- Initial state
    • in_progress -- Student has started but not completed
    • completed -- Student has submitted (manually set or auto-set)
    • overdue -- Past due date without completion

To update status:

  1. Open the offline exam assignments
  2. Find the student
  3. Click "Update Status"
  4. Select the new status
  5. If set to "completed", the completed_at timestamp is recorded automatically

Removing an Assignment

  1. Open the exam's assignment list
  2. Find the student assignment to remove
  3. Click the "Delete" button (trash icon) next to the assignment
  4. Confirm removal
  5. The student will no longer see this exam in their assignments

Tip: Removing an assignment does not delete any exam attempts the student has already made. Their scores and data remain intact.

Bulk Assignment Workflow

For large-scale assignment scenarios:

  1. Set Up Classes First

  2. Create the Exam

  3. Assign by Class

    • Select the class(es) to assign to
    • All students in those classes receive the assignment instantly
  4. Monitor Progress

    • Check the assignments tab periodically
    • Follow up with students who have 0 attempts as the due date approaches

Assignment Types Explained

TypeDescriptionWhen to Use
individualAssigned directly to specific studentsRemedial work, makeup exams
sectionExpanded from section membershipSection-specific tests
classExpanded from class membershipClass-wide exams, finals

When a student belongs to multiple groups (e.g., assigned via both section and class), only one assignment record is created. The latest assignment scope takes precedence via upsert.

Best Practices

Setting Due Dates

  • Always set due dates for homework and practice exams
  • Leave due dates open for diagnostic or self-paced assessments
  • Set due dates at least 2-3 days out to give students adequate time

Monitoring Completion

  • Check assignment status at least once before the due date
  • Send reminders to students with 0 attempts via class announcements
  • Use the student's attempt count and best score to identify who needs help

Organizing Assignments

  • Use consistent exam naming to help students identify assignments
  • Assign exams in chronological order to avoid confusion
  • Remove outdated assignments to keep student dashboards clean

Common Issues

Students Not Receiving Notifications

  • Ensure students have notification permissions enabled in their browser/device
  • Check that push notification service is configured on the backend
  • In-app notifications are always created regardless of push status

"Exam not found" When Assigning

  • The exam must be saved and have a valid ID
  • Draft exams can be assigned but students cannot start them until published

Duplicate Assignment Error

  • The system uses upsert logic, so assigning the same student twice simply updates the existing record
  • This is expected behavior, not an error

Cannot Delete Assignment

  • Only users with Teacher, Manager, Admin, or Super Admin roles can delete assignments

Notification Details

When you assign an exam, the notification system works as follows:

In-App Notifications

  • A notification record is created in the exam_notifications table for each assigned student
  • Notification type: EXAM_ASSIGNED
  • Title: "New Exam Assigned"
  • Message includes:
    • Exam title (e.g., "You have been assigned 'Physics Mid-Term 2026'")
    • Duration in minutes (if set)
    • Start time (if scheduled)
  • Students see these in their notification bell icon

Push Notifications

  • Sent to all assigned students who have push notifications enabled
  • Works on both mobile devices and web browsers
  • Contains the same title and message as the in-app notification
  • Includes metadata: examId and type: 'exam_assigned'

Notification Timing

  • Notifications are sent asynchronously (fire-and-forget) immediately after the assignment is created
  • If the notification service encounters an error, the assignment still succeeds -- notification failures are non-fatal
  • Students who are offline will see the in-app notification when they next log in

Assignment Lifecycle

Understanding the full lifecycle of an assignment:

  1. Created -- Teacher assigns the exam; status is assigned
  2. Notified -- Students receive push and in-app notifications
  3. Started -- Student opens and begins the exam; status can be updated to in_progress (offline exams)
  4. Submitted -- Student completes the exam; attempt is recorded
  5. Graded -- Teacher grades subjective questions (if any)
  6. Completed -- All work is done; status is completed
  7. Overdue -- Due date has passed without completion; status is overdue

For online exams, steps 3-4 happen automatically within the exam player. For offline exams, the teacher updates status manually based on OMR scan results.

Next Steps

Need Help?

Contact support at support@edukali.ai