Skip to content

oveeernight/PLVisualizer

Repository files navigation

Pedagogical Load Visualizer

Назначение приложения

Приложение представляет из себя небольшую информационную систему для визуализации педагогической нагрузки преподавателей СПбГУ с исследованием различных сценариев распределения нагрузки благодаря возможности перетаскивать дисциплины между преподавателями при помощи Drag&Drop. Распределенную нагрузку можно выгрузить в указанную Google Spreadsheet таблицу.

Очень важные ограничения

  • При любом взаимодействии с Google Spreadsheet таблицами данные берутся из листа с названием Лист1 (название листа по умолчанию при создании таблицы), выгрузка данных также происходит в Лист1, поэтому лист с таким названием обязательно должен быть в таблице.
  • Google Spreadsheet таблица, в которую происходит экспорт нагрузки, должна быть открыта для редактирования для всех (возможно, если появится фиксированный сервисный аккаунт, то разрешать редактировать можно будет только ему).
  • Учебные планы, используемые во входном .xlsx файле, должны находиться в этом приложении в учебных планах
  • Дисциплины из .xlsx файла, соответствующие общему типу учебной работы практики, а именно все, кроме Лекции, Консультации, Промежуточная аттестация (экз), Коллоквиумы, должны образовывать целое количество одинаковых групп по типу Практические занятия, Контрольные работы, Промежуточная аттестация (зач). Эти группы представляют собой копию дисциплины для каждой группы на направлении. Целое количество, потому что было бы странно, если бы у одной группы контрольные работы были, а у другой - нет.

Первый сценарий использования

Импортирование .xlsx файла с распределенной нагрузкой в следующем формате (его можно скачать в формате .xlsx и использовать в приложении при импортировании таблицы с .xlsx файлом) вместе с конфигурационной таблицей (ссылку на неё можно использовать в приложении), содержащей интересующих преподавателей с их должностями и процентами ставок. Нагрузку можно как-то перераспределить и экспортировать в указанную Google Spreadsheet таблицу.

Второй сценарий использования

Импортирование Google Spreadsheet таблицы, которую приложение уже выгрузило. Достаточно просто ввести ссылку на таблицу. Примера нет, потому что можно его воссоздать самостоятельно в первом сценарии.

Что нужно сделать сейчас, чтобы развернуть приложение на своём устройстве:

  • Поставить в переменную окружения GOOGLE_APPLICATION_CREDENTIALS путь к файлу со скачанными CREDENTIALS в формате .json из Google Cloud Console
  • Убедиться, что установлен Docker и что докер демон запущен.
git clone --recurse-submodules https://github.com/oveeernight/PLVisualizer
cd PLVisualizer

Запускаем приложение

docker compose up

Клиентская часть доступна по адресу http://localhost:3000/.

Возможная ошибка

Если в приложении ничего не происходит при импорте или экспорте и в косноли браузера появляется ошибка ERR_CERT_AUTHORITY_INVALID, нужно в консоли браузера нажать на роут, запрос по которому завершился ошибкой, он может выглядеть примерно так GET https://localhost:8787/tables/import/13iWusc8H38jwL1Mhmd9ApSGyjfgdfNQo0SudIGtJTyBDxE, и на открывшейся странице "Подключение не защищено", нажать Дополнительные -> Перейти на *адрес* (небезопасно) и повторить запрос.