Skip to main content

Create Exam Notification

Overview

The "Create Exam" feature in the ExamX allows the administrators to set up a new exam notification*. This documentation outlines the essential details of the backend processes and steps involved in creating a exam notification, providing a comprehensive guide for developers.

*In the context of exam notification, the term 'notification' refers to official communication or announcement regarding upcoming exams, including details such as exam dates, and other relevant information.

Feature Description

  • Purpose: The purpose of this API is to facilitate the creation of exam notification for courses within an institution. It distinguishes between regular and honors/minors exam notification based on the provided input. The following fields are necessary for creating an exam notification:

    • Regulation
    • Degree
    • Is Honours/Minors Exam
    • Semester
    • Exam Year
    • Exam Month
    • Subject Type
    • Exam Type
    • Evaluation Type.
  • Key functions: Create either a normal exam or a Honours/Minors Exam

    • Create Normal Exam: When the 'Honours/Minors Exam' checkbox is checked.
    • Create Honours/Minors Exam: When the 'Honour/Minors Exam' checkbox is unchecked. It doesn't have semester field because the exam can be written in any year during course duration. Honours/Minors exam does not have a supplementary exam option.
  • Output: A newly created exam notification

Process Flow

Development Steps

Validate all the fields taken as input before creating a new exam notification

  • Check Permission: Validate that user attempting to create exam possess the 'end_semester_examinations_add' permission.
  • Check Authorization: Only Master Institution can create an exam notification.
  • Check isHonorsMinorsExam: Depending on this boolean create either a normal exam or a honours/minors exam.
  • Validate Regulation: Validate if regulation is available.
  • Validate Degree: Validate if the particular degree is available in the institution.
  • Validate Semester: Check if the semester is created for that particular degree
  • Validate Subject types: Validate if the subject types given as input are available.
  • Validate Exam type and batches: It is essential to prevent the creation of exam notification allowing a particular batch to write both regular exam and supplementary exam.
  • Check Duplicate: Validate if an exam notification with specific input details is already created.
  • Save exam notification: save the data to 'ExamGroup' entity.

Functions with individual test cases

  • createExamGroup

    • Exam can only be created in the Master Institution.
    • Based on the boolean 'isHonorsMinorsExam', a normal or honours/minors exam is created.
  • createHonorsMinorExamGroup

    • create a honours/minors exam with the checks and validations as mentioned above.
    • Assigns a 'null' value to the semester, 'regular' to exam type.
  • createNormalExamGroup

    • creates a normal exam with the checks and validations as mentioned above.
    • 'semester' is a must for normal exam.

Dependent Modules

  • Regulation Entity
  • Course Entity
  • Subject Type Entity
  • Semester Entity

Conclusion

In summary, this API offers a well-organized solution for implementing exam group creation. It ensures security through authorization checks, validates input data, and prevents duplication. The modular design facilitates easy integration, and the code adheres to best practices.

References

  • API Postman Link: