Цифровой Студенческий Билет

Марк Златковский

January 28, 2022
6 мин

Цифровой Студенческий Билет (ЦСБ) — это государственный сервис, который автоматизирует идентификацию студентов и заменяет классические бумажные студенческие билеты. Проект является частью государственной системы «Современная цифровая образовательная среда» (ГИС СЦОС), в рамках которой студенты могут проходить онлайн-курсы других университетов и получать по ним перезачет в своем ВУЗе.

ЦСБ для студентов

В Профиле ЦСБ хранится вся необходимая информация для идентификации студента. Для ее считывания достаточно специального QR-кода, который студенты могут сгенерировать в личном кабинете. Такой QR-код позволяет:

  • Использовать ЦСБ как пропуск в университет
  • Получить временный доступ в другие ВУЗы в рамках академической мобильности
  • Подтвердить свой статус студента в различных музеях, спорткомлексах, библиотеках, выставках и других местах

ЦСБ для других пользователей

У охранников и администраторов системы имеются собственные профили с разными уровнями доступа. В них охранники могут сканировать студенческие QR-коды и сохранять историю всех пропусков, а администраторы системы — получать и редактировать информацию обо всех пользователях сервиса.

Кроме сотрудников университетов, подтвердить статус студента могут и неавторизованные пользователи. Достаточно отсканировать QR-код с помощью сервиса ЦСБ и получить базовую информацию о студенте.

Клиентская часть

Сервис ЦСБ — это полноценное веб-приложение, которое работает в большинстве браузеров. Для удобства использования сервиса на мобильных устройствах мы разработали PWA-версию. PWA легко запускается в смартфоне как приложение (без интерфейса браузера) и позволяет хранить сгенерированный QR-код даже без Интернета.

Изначально планировалось построить фронтенд на базе технологии JSF (JavaServer Faces), но JSF не обладает должной гибкостью и плохо поддерживает необходимые библиотеки. Поэтому был использован более современный фреймворк React.js.

Серверная часть

Бэкенд сервиса разработан на языке Java в связке со Spring Boot. Для организации работы сервера использовано решение nginx.

Оно зарекомендовало себя на рынке и стало де-факто стандартом для развертывания высоконагруженных серверов nginx берет на себя множество функций, включая балансировку нагрузки, перенаправление адресов при помощи прокси и выдачу веб-страниц.

Обработка и хранение данных

Для хранения информации о профилях пользователей мы использовали СУБД PostgreSQL. Чтобы взаимодействовать с базами данных, применяется ORM Hibernate. Библиотека позволяет удобно связать Java-классы и объекты базы данных, а также автоматически генерировать запросы к БД и извлекать данные.


Авторизация пользователей

На портале ГИС СЦОС действует технология единого входа. С помощью одного профиля пользователь может пройти аутентификацию на всех информационных ресурсах системы. Поэтому единый вход необходимо было обеспечить и в ЦСБ. Для этого наши разработчики подключили к сервису ЦСБ инструмент Keycloak и дополнительные библиотеки основного портала.


Обеспечение отказоустойчивости

Нагрузка на сервер постоянно меняется. Чтобы от повышенной нагрузки основной сервер не вышел временно из строя, был подготовлен резервный сервер с собственной базой данных. Между серверами перераспределяется нагрузка, а данные периодически реплицируются во избежание их потери.

Итог

Цифровой Студенческий Билет стал частью крупного государственного сервиса онлайн-образования. Некоторые крупные российские вузы уже внедрили микросервис в свою инфраструктуру. Их студенты теперь всегда имеют под рукой подтверждение статуса студента (которое не потеряется), а сотрудники университета могут оперативно выдавать необходимые доступы.

Еще о наших проектах

Sixhands GPT Alpha