An open API service indexing awesome lists of open source software.

https://github.com/ivkos/uiss-client

node.js клиент за УИСС на Технически универститет - София
https://github.com/ivkos/uiss-client

node node-js node-module parser parser-api scraper technical-university tu-sofia uiss

Last synced: 3 months ago
JSON representation

node.js клиент за УИСС на Технически универститет - София

Awesome Lists containing this project

README

        

uiss-client
=============
[![npm](https://img.shields.io/npm/v/uiss-client.svg)](https://www.npmjs.com/package/uiss-client)
[![npm](https://img.shields.io/npm/dt/uiss-client.svg)](https://www.npmjs.com/package/uiss-client)
[![npm](https://img.shields.io/npm/l/uiss-client.svg)]()

## Описание
`uiss-client` е node.js клиент за [УИСС](http://student.tu-sofia.bg) на Технически университет - София, позволяващ автоматизиране на проверката на оценки и получаване на информация за студент.

## Инсталиране
```
npm install uiss-client
```

## Примери
```js
const UissClient = require('uiss-client');

const egn = '94xxxxyyyy';
const facultyId = 'xxxx13yyy';
```

```js
UissClient
.login(egn, facultyId)
.then(session => {
return session.getStudent()
.then(student => console.log(student))
.then(() => session.logout());
})
.catch(err => console.error(err));

```

```js
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\ login(egn, facultyId)
Създава нова сесия в УИСС като се логва с подадените ЕГН (`egn`) и факултетен номер (`facultyId`). Връща `Promise` с инстанция на `UissClient` за текущата сесия.

> Вижте [документацията на Promise в MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) и примерите по-горе за това как се използва `Promise`.

#### Promise\ getStudent()
Извлича информацията за студента от текущата сесия. Връща `Promise`. Обектът `Student` е с подобна на тази структура:
```
Student {
_name: 'XXXXXXXXXXXXXX',
_facultyId: 'XXXXXXXX',
_facultyName: 'XXXXXXXXXXXXXXXXXXXXX',
_major: 'XXXXXXXXXXXXXX',
_degreeType: 'Редовно',
_email: '[email protected]',
_status: '$12Действащ',
_semester: 6,
_completedSemester: 6,
_stream: N,
_group: NN }
```

#### Promise\ getGrades()
Извлича оценките на студента. Връща `Promise` с масив от `Grade`. Обектът `Grade` е с подобна на тази структура:
```
Grade {
_gradeId: 44,
_name: 'ПРОГРАМНИ СРЕДИ',
_semesterId: 6,
_controlForm: 'Изпит',
_gradeText: 'мн.добър',
_gradeNumeric: 5,
_lastUpdate:
{ ... }
```
Полето `lastUpdate` е от тип `Moment`.

> Вижте [документацията на Moment.js](http://momentjs.com/docs/) и примерите по-горе за това как се използва `Moment`.

#### Promise\ getCerts()
Извлича заверките на студента. Връща `Promise` с масив от `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](/LICENSE).