Приложение представляет из себя небольшую информационную систему для визуализации педагогической нагрузки преподавателей СПбГУ с исследованием различных сценариев распределения нагрузки благодаря возможности перетаскивать дисциплины между преподавателями при помощи 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
, и на открывшейся странице "Подключение не защищено", нажать Дополнительные
-> Перейти на *адрес* (небезопасно)
и повторить запрос.