Веб-интерфейс для просмотра оценок студентами, разрабатываемый для МГТУ Станкин. Также может использоваться как средство OAuth2-аутентификации студентов на внутренних сервисах МГТУ Станкин (см oauthProvider.md).
Сообщения об ошибках и пожелания вы можете оставить здесь.
Для сборки из исходников необходим maven и JDK 8 С более поздними версиями JDK может не собираться из-за проблем GWT 2.7 с поддержкой более новых версий Java.
При этом работа приложения может осуществляться и на более поздних версиях JDK (По крайней мере в настойщий момент приложений работает на JDK 11)
Сборку можно осуществить командой:
mvn clean install -DskipTests
Собранное веб приложение будет располагаться по адресу /target/modules-journal.war
и предназначено для развертывания на сервере приложений Wildlfy Application Server 19.0.0.Final, скачать который можно по ссылке.
Для автоматического конфигурирования сервера при помощи Ansible можно воспользоваться ansible/setup-playbook.yaml
.
В папке ${jboss.server.config.dir}
(например, $JBOSS_HOME/standalone/configuration
) должен находиться файл mj.properties
следующего содержания :
oauth.google.clientid=клинет_ид_приложения_в_google
oauth.google.secret=секрет_приложения_в_google
oauth.vk.clientid=клинет_ид_приложения_в_vk
oauth.vk.secret=секрет_приложения_в_vk
oauth.yandex.clientid=клинет_ид_приложения_в_yandex
oauth.yandex.secret=секрет_приложения_в_yandex
oauth.callbackurl=http://localhost:8080/mj/callback (или другой при развертывании на сервере)
service.email=почтовый ящик с которого сервер будет отправлять письма
service.recoveryurl=http://localhost:8080/mj/recovery
Для работы приложения на сервере должен быть установлен PostgreSQL.
Сервер WildFly должен иметь поддержку JDBC-драйвера для postgresql. Для добавления его нужно выполнить следующие команды:
wget https://jdbc.postgresql.org/download/postgresql-42.2.12.jar
./jboss-cli.sh
И внутри него:
connect
module add --name=org.postgresql --slot=main --resources=путь-куда-вы-скачали-драйвер --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
Настройки доступа к базе (url, логин, пароль) должны быть указаны в конфигурации WildFly
data-source add --jndi-name=java:jboss/datasources/mj2 --name=mj --connection-url=jdbc:postgresql://localhost:5432/mj --driver-name=postgres --user-name=login --password=password
Для отправки почты почтовый сервер должен быть указан в конфигурации Wildfly, можно добавить через jboss-cli
:
batch
/subsystem=mail/mail-session=default/server=smtp:write-attribute(name=username,value=ВАШ-EMAIL)
/subsystem=mail/mail-session=default/server=smtp:write-attribute(name=password,value=ВАШ-ПАРОЛЬ)
/subsystem=mail/mail-session=default/server=smtp:write-attribute(name=ssl,value=true)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=mail-smtp/:write-attribute(name=host,value=smtp.yandex.ru)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=mail-smtp/:write-attribute(name=port,value=465)
run-batch
По-умолчанию размер загружаемых файлов на Wildfly ограничен 10 мегабайтами, что меньше чем размер загружаемого на 2020 год выгрузки из 1С.
Этот размер можно увеличить до 64 Мб командой в jboss-cli.sh
/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=67108864)
Также имеет смысл увеличить максимальное время соединения для загрузки больших файлов
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=no-request-timeout, value=600000)
Если в качестве фронтента выступает nginx то ему в соответствующий блок server
аналогично нужно добавить:
client_max_body_size 64m;
А в настройки proxy:
proxy_connect_timeout 1200s;
proxy_read_timeout 1200s;
Включить архивацию при ротации логов можно командой в jboss-cli.sh
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=suffix, value=".yyyy-MM-dd.gz")
Развертывание можно осуществить командой:
mvn wildfly:deploy -DskipTests -Dwildfly.hostname=адрес_сервера
Для выполнения тестов (mvn test
) необходимо предварительно создать в Postgres пользователя mj_test
с паролем mj_test
и базу данных mj_test
.
Сделать это можно (в Ubuntu) командами:
sudo -u postgres createuser mj_test -d -P
sudo -u postgres createdb mj_test -E UTF8 -l en_US.UTF-8 -O mj_test
При запросе ввода пароля в качестве пароля введите mj_test
.
В качестве альтернативы, если вы используете Docker, то можно использовать подготовленный
в корневом каталоге файл для тестирования docker-compose-dev.yaml
docker-compose -f docker-compose-dev.yaml up
Для входа в систему по умолчанию используется логин admin
и пароль adminadmin
. Их можно изменить при входе.
Для загруки данных о студентах необходимо сначала загрузить "эталон" (пример эталона: src/test/resources/newEtalon.xls
), кликнув по кнопке Выбрать Файлы под надписью Загрузить эталон, а затем загрузть xls-файлы модульных журналов (пример журнала: src/test/resources/information_items_property_2349.xls
), кликнув по кнопке Выбрать Файлы под надписью Загрузить файлы с оценками, или перетащить их из файлового менеджера в на поле Перетащите файлы.
После этого в таблице слева окажется список студентов, и, если кликнуть на студента в списке, то справа будет отображены его текущие оценки.
Также доступен поиск по имени студента и группе.
Кликнув по кнопке Аккаунт в правом верхнем углу экрана можно отредактировать пароль администратора.
Кликнув по кнопке Редактировать рядом с фамилией студента (становится активной после выбора студента) можно отредактировать данные для аутентификации студентов.