node.js клиент за УИСС на Технически универститет - София
Switch branches/tags
Nothing to show
Clone or download
Latest commit f322ea8 Jul 9, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Apply consistent code style Jul 9, 2018
.gitignore Initial commit Jul 1, 2016
LICENSE Initial commit Jul 1, 2016
README.md Add certs and signatures support Jan 12, 2017
package.json v1.2.0 Jul 9, 2018
yarn.lock Add yarn.lock Jul 9, 2018

README.md

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.