API для Житомирського державного університету імені Івана Франка.
Бібліотека надає програмний доступ до відкритих сервісів університету, зокрема:
⚠️ Проєкт не є офіційним API університету.
npm install zdu-student-api
або
pnpm install zdu-student-api
import { Schedule, scheduleErrors } from 'zdu-student-api';
const schedule = new Schedule();
schedule.group = '23Бд-СОінф';
schedule.type = 'group';
schedule.rosText = true;
schedule.allStreamComponents = true;
try {
const sc = await schedule.getSchedule();
console.log('Розклад:', sc);
} catch (err: any) {
console.error(err.message);
console.error(scheduleErrors[JSON.parse(err.message).errorcode]);
}
const schedule = new Schedule();
schedule.roomId = 35;
schedule.type = 'room';
schedule.rosText = true;
const sc = await schedule.getSchedule();
console.log(sc);
import { getGroups } from 'zdu-student-api';
const groups = await getGroups('25Бд-Комп');
console.log(groups);
import { getTeachers } from 'zdu-student-api';
const teachers = await getTeachers('Кривонос Олександр');
console.log(teachers);
import { getRooms } from 'zdu-student-api';
const rooms = await getRooms('319');
console.log(rooms);
import { getTypesAudience } from 'zdu-student-api';
const types = await getTypesAudience('Ле');
console.log(types);
import { Audience } from 'zdu-student-api';
const audience = new Audience();
audience.blockName = 'гуртож №3';
const audiences = await audience.getAudience();
console.log(audiences);
import { getDops } from 'zdu-student-api';
const dops = await getDops();
console.log(dops);
import { CabinetStudent } from 'zdu-student-api';
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
// Авторизація
const authSuccess = await cabinet.auth();
if (authSuccess) {
console.log('Авторизовано успішно!');
console.log('Session ID:', cabinet.sesID);
}
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
await cabinet.auth();
// Завантажити всі дані (анкетні дані, дисципліни, оцінки)
await cabinet.loadData();
console.log('Дані студента:', cabinet.data);
console.log('Дисципліни:', cabinet.disciplines);
console.log('Оцінки:', cabinet.allScores);
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
await cabinet.auth();
// Отримати дисципліни поточного семестру
const disciplines = await cabinet.getDisciplines();
console.log('Дисципліни:', disciplines);
// Отримати оцінки з усіх дисциплін
const allScores = await cabinet.getAllScores();
console.log('Всі оцінки:', allScores);
// Отримати оцінки за конкретний семестр
const firstSemesterScores = await cabinet.getAllScores(1);
const secondSemesterScores = await cabinet.getAllScores(2);
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
// Відновити попередню сесію
const sesID = 'YOUR_SESSION_ID';
const sessGUID = 'YOUR_SESSION_GUID';
// Сесія активна тільки 24 години і стає застарілою як тільки відбувається нова авторизація викладача в кабінеті
const sessionValid = await cabinet.setSession(sesID, sessGUID);
if (sessionValid) {
console.log('Сесію відновлено!');
await cabinet.loadData();
}
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
await cabinet.auth();
// Перевірити чи сесія ще дійсна
const isValid = await cabinet.isValidSession();
console.log('Сесія дійсна:', isValid);
const cabinet = new CabinetStudent('ПРІЗВИЩЕ', 'ПАРОЛЬ');
await cabinet.auth();
const studentId = await cabinet.getId();
console.log('ID студента:', studentId);
import { CabinetTeacher } from 'zdu-student-api';
const cabinet = new CabinetTeacher('ЛОГІН', 'ПАРОЛЬ');
// Авторизація
const authSuccess = await cabinet.auth();
if (authSuccess) {
console.log('Авторизовано успішно!');
console.log('Session ID:', cabinet.sesID);
}
const cabinet = new CabinetTeacher('ЛОГІН', 'ПАРОЛЬ');
await cabinet.auth();
// Отримати анкетні дані викладача
const data = await cabinet.getData();
console.log('ПІБ:', data.fullName);
console.log('Кафедра:', data.department);
console.log('Навантаження:', data.totalWorkload);
const cabinet = new CabinetTeacher('ЛОГІН', 'ПАРОЛЬ');
await cabinet.auth();
// Отримати всі академічні групи
const groups = await cabinet.getAcademicGroups();
console.log('Академічні групи:', groups);
// Інформація зберігається в об'єкті
console.log('Групи викладача:', cabinet.academicGroups);
// Приклад даних групи:
// {
// name: '46Бд-Комп',
// semester: 1,
// encodedName: '46%C1%E4-%CA%EE%EC%EF',
// course: 4,
// specialty: '122 Комп`ютерні науки (Д_Б 2022-2023 н.р.)',
// faculty: 'Фізико-математичний факультет',
// teacherId: '1466',
// journalUrl: './teachers.cgi?sesID={sesID}&n=1&grp=46%C1%E4-%CA%EE%EC%EF&teacher=1466'
// },
const cabinet = new CabinetTeacher('ЛОГІН', 'ПАРОЛЬ');
await cabinet.auth();
// Завантажити всі дані (анкетні дані + академічні групи)
await cabinet.loadData();
console.log('Дані викладача:', cabinet.data);
console.log('Академічні групи:', cabinet.academicGroups);
const cabinet = new CabinetTeacher('ЛОГІН', 'ПАРОЛЬ');
// Відновити попередню сесію
const sesID = 'YOUR_SESSION_ID';
const sessGUID = 'YOUR_SESSION_GUID';
const sessionValid = await cabinet.setSession(sesID, sessGUID);
if (sessionValid) {
console.log('Сесію відновлено!');
await cabinet.loadData();
}
📘 API-документація (TypeDoc): https://nicita-3.github.io/zdu-student-api
MIT © 2026