uiss-client

UISS Client

Usage no npm install needed!

<script type="module">
  import uissClient from 'https://cdn.skypack.dev/uiss-client';
</script>

README

uiss-client

npm npm npm

Описание

uiss-client е node.js клиент за УИСС на Технически университет - София, позволяващ автоматизиране на проверката на оценки и получаване на информация за студент.

Инсталиране

npm install uiss-client

Примери

const UissClient = require('uiss-client');

const egn = '94xxxxyyyy';
const facultyId = 'xxxx13yyy';
UissClient
    .login(egn, facultyId)
    .then(session => {
        return session.getStudent()
            .then(student => console.log(student))
            .then(() => session.logout());
    })
    .catch(err => console.error(err));
    
const moment = require("moment");

UissClient
    .login(egn, facultyId)
    .then(session => {
        return session.getGrades()
            .then(grades => {
                // Филтрира само оценките, внесени на и след 30.06.2016
                const latest = grades.filter(
                    g => g.lastUpdate && g.lastUpdate.isSameOrAfter(moment("30.06.2016", "DD.MM.YYYY"))
                );
                
                console.log(latest);
            })
            .then(() => session.logout())
            .catch(err => console.error(err));
    });

Документация на UissClient

static Promise<UissClient> login(egn, facultyId)

Създава нова сесия в УИСС като се логва с подадените ЕГН (egn) и факултетен номер (facultyId). Връща Promise<UissClient> с инстанция на UissClient за текущата сесия.

Вижте документацията на Promise в MDN и примерите по-горе за това как се използва Promise.

Promise<Student> getStudent()

Извлича информацията за студента от текущата сесия. Връща Promise<Student>. Обектът Student е с подобна на тази структура:

Student {
  _name: 'XXXXXXXXXXXXXX',
  _facultyId: 'XXXXXXXX',
  _facultyName: 'XXXXXXXXXXXXXXXXXXXXX',
  _major: 'XXXXXXXXXXXXXX',
  _degreeType: 'Редовно',
  _email: 'XXXXXX@gmail.com',
  _status: '$12Действащ',
  _semester: 6,
  _completedSemester: 6,
  _stream: N,
  _group: NN }

Promise<Grade[]> getGrades()

Извлича оценките на студента. Връща Promise<Grade[]> с масив от Grade. Обектът Grade е с подобна на тази структура:

 Grade {
    _gradeId: 44,
    _name: 'ПРОГРАМНИ СРЕДИ',
    _semesterId: 6,
    _controlForm: 'Изпит',
    _gradeText: 'мн.добър',
    _gradeNumeric: 5,
    _lastUpdate:
     { ... }

Полето lastUpdate е от тип Moment.

Вижте документацията на Moment.js и примерите по-горе за това как се използва Moment.

Promise<Cert[]> getCerts()

Извлича заверките на студента. Връща Promise<Cert[]> с масив от Cert. Обектът Cert има подобна на следната структура:

Cert {
  _signatures: 
   { lectures: EmptySignature { _signeeName: 'Незаверен', _date: moment.invalid(/* NaN */) },
     seminars: undefined,
     labs: 
      Signature {
        _signeeName: 'гл. ас. д-р ТАШЕВА',
        _date: moment("2017-01-11T00:00:00.000") },
     practice: undefined,
     project: undefined },
  _certId: 55,
  _subjectName: 'ПРОГРАМИРАНЕ ЗА РАЗПРЕДЕЛЕНИ СРЕДИ',
  _semesterId: 7 }

Promise logout()

Прекратява текущата сесия.

Лиценз

uiss-client е свободен софтуер и се разпространява под лиценза MIT.