Home Projects Jsjiit Api Reference Exam And Schedule Methods

Exam and Schedule Methods

Purpose and Scope

This document covers the exam and schedule-related methods in the WebPortal class. These methods allow retrieval of exam events, schedules, and venue information from the JIIT web portal. The methods work in a hierarchical flow: first retrieving available semesters with exam data, then getting exam events for a semester, and finally fetching detailed schedules for specific events.

For information about other data retrieval methods, see:


Overview

The exam and schedule functionality is implemented through three primary methods in the WebPortal class and one supporting data model class:

Method Purpose Returns
get_semesters_for_exam_events() Retrieves semesters that have exam events Array<Semester>
get_exam_events(semester) Gets exam events for a specific semester Array<ExamEvent>
get_exam_schedule(exam_event) Fetches detailed schedule for an exam event Object

The ExamEvent class (src/exam.js4-35) encapsulates exam event metadata required for schedule retrieval.

Sources: src/wrapper.js337-379 src/exam.js1-36 README.md87-92


Method Call Flow

Architecture Diagram

Sources: src/wrapper.js337-379 README.md87-92


Method Reference

get_semesters_for_exam_events()

Retrieves the list of semesters for which exam events are available.

Signature:

async get_semesters_for_exam_events()

Parameters: None

Returns: Promise<Array<Semester>> - Array of semester objects containing exam events

Implementation Details:

API Request Payload Structure:

{
  clientid: this.session.clientid,
  instituteid: this.session.instituteid,
  memberid: this.session.memberid
}

Sources: src/wrapper.js337-347


get_exam_events(semester)

Retrieves all exam events (e.g., Mid-term, End-term) for a specific semester.

Signature:

async get_exam_events(semester)

Parameters:

Parameter Type Description
semester Semester Semester object (from get_semesters_for_exam_events())

Returns: Promise<Array<ExamEvent>> - Array of exam event objects

Implementation Details:

API Request Payload Structure:

{
  instituteid: this.session.instituteid,
  registationid: semester.registration_id  // Note: API typo preserved
}

Sources: src/wrapper.js354-363


get_exam_schedule(exam_event)

Retrieves the detailed exam schedule and venue information for a specific exam event.

Signature:

async get_exam_schedule(exam_event)

Parameters:

Parameter Type Description
exam_event ExamEvent ExamEvent object (from get_exam_events())

Returns: Promise<Object> - Raw response object containing schedule details including dates, times, and venues

Implementation Details:

API Request Payload Structure:

{
  instituteid: this.session.instituteid,
  registrationid: exam_event.registration_id,
  exameventid: exam_event.exam_event_id
}

Sources: src/wrapper.js370-379


ExamEvent Data Model

The ExamEvent class encapsulates exam event metadata required for schedule retrieval.

Architecture Diagram

Class Properties:

Property Type Description Source Field
exam_event_code string Event code identifier exameventcode
event_from number Timestamp for event start eventfrom
exam_event_desc string Human-readable event description exameventdesc
registration_id string Associated registration ID registrationid
exam_event_id string Unique exam event identifier exameventid

Static Methods:

  • from_json(resp): Constructs an ExamEvent instance from API response JSON (src/exam.js26-34)

Sources: src/exam.js4-35


Data Flow Architecture

Architecture Diagram

Sources: src/wrapper.js337-379 src/encryption.js5 src/exam.js4-35


Complete Usage Example

The following example demonstrates the complete workflow for retrieving exam schedules:

// Step 1: Authenticate
const portal = new WebPortal();
await portal.student_login('username', 'password');

// Step 2: Get semesters with exam events
const examSemesters = await portal.get_semesters_for_exam_events();
const latestSemester = examSemesters[0];

// Step 3: Get exam events for the semester
const examEvents = await portal.get_exam_events(latestSemester);

// Step 4: Retrieve schedule for each exam event
for (const event of examEvents) {
    console.log(`Event: ${event.exam_event_desc}`);
    const schedule = await portal.get_exam_schedule(event);
    console.log(schedule);
}

Sources: README.md87-92 src/wrapper.js337-379


API Endpoint Reference

All exam-related methods use the following base API URL: https://webportal.jiit.ac.in:6011/StudentPortalAPI (src/wrapper.js14)

Method Endpoint Path Controller
get_semesters_for_exam_events() /studentcommonsontroller/getsemestercode-withstudentexamevents studentcommonsontroller
get_exam_events() /studentcommonsontroller/getstudentexamevents studentcommonsontroller
get_exam_schedule() /studentsttattview/getstudent-examschedule studentsttattview

All requests:

Sources: src/wrapper.js14 src/wrapper.js337-379 src/wrapper.js701-703


Error Handling

All exam methods inherit the standard error handling behavior from the WebPortal.__hit() method:

Error Type Scenario Exception Class
HTTP 513 Portal temporarily unavailable APIError
HTTP 401 Session expired SessionExpired
Not authenticated Method called before login NotLoggedIn
Invalid response API returns non-Success status APIError

For comprehensive error handling documentation, see Error Handling.

Sources: src/wrapper.js97-158 src/wrapper.js679-719 src/exceptions.js1-50