zdu-student-api - v1.1.10
    Preparing search index...

    zdu-student-api - v1.1.10

    ZDU Student API

    API для Житомирського державного університету імені Івана Франка.

    Бібліотека надає програмний доступ до відкритих сервісів університету, зокрема:

    • 📅 розклад занять студентів / викладачів / аудиторій
    • 🚪 зайняті / вільні аудиторії
    • 🏫 списки аудиторій
    • 👥 списки груп
    • 👨‍🏫 списки викладачів
    • 🎯 TypeScript підтримка з повною типізацією
    • 📱 Сумісність з Node.js та браузерними середовищами
    • 🔐 Авторизація в кабінеті студента
    • 📝 Отримання анкетних даних студента (ПІБ, дата народження, стать, контакти, факультет, спеціальність, група, форма навчання)
    • 📖 Отримання дисциплін поточного семестру
    • 📊 Отримання оцінок з окремого предмета (з деталізацією по заняттях, пропускам та фінальною оцінкою)
    • 📈 Отримання оцінок з усіх дисциплін одночасно
    • 🎓 Отримання оцінок за конкретний семестр (1 або 2)
    • 🆔 Отримання ID студента в системі оцінювання
    • 💾 Відновлення попередньої сесії без повторної авторизації
    • ✅ Перевірка валідності поточної сесії
    • 🔄 Автоматичне визначення поточного семестру
    • 📦 Масове завантаження всіх даних (анкетні дані + дисципліни + оцінки)
    • 📅 Інформація про розклад занять для кожної дисципліни (викладач, дата, час, тип заняття)
    • 🔐 Авторизація в кабінеті викладача
    • 📝 Отримання анкетних даних викладача (ПІБ, кафедра, години роботи, навантаження)
    • 👥 Отримання списку всіх академічних груп викладача
    • 📊 Деталізована інформація про кожну групу (назва, курс, семестр, спеціальність, факультет)
    • 🔗 URL-посилання на журнали академічних груп
    • 💼 Інформація про навчальне навантаження (години за штатом, за сумісництвом, загальне)
    • 📆 Тривалість роботи в навчальному році
    • 💾 Відновлення попередньої сесії без повторної авторизації
    • ✅ Перевірка валідності поточної сесії
    • 📦 Масове завантаження всіх даних (анкетні дані + академічні групи)
    • стабільне API кабінету студента
    • стабільне 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