Skip to content

stankin/mj

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Модульный журнал МГТУ Станкин Build Status

Веб-интерфейс для просмотра оценок студентами, разрабатываемый для МГТУ Станкин. Также может использоваться как средство 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

Postgres

Для работы приложения на сервере должен быть установлен 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), кликнув по кнопке Выбрать Файлы под надписью Загрузить файлы с оценками, или перетащить их из файлового менеджера в на поле Перетащите файлы.

После этого в таблице слева окажется список студентов, и, если кликнуть на студента в списке, то справа будет отображены его текущие оценки.

Также доступен поиск по имени студента и группе.

Кликнув по кнопке Аккаунт в правом верхнем углу экрана можно отредактировать пароль администратора.

Кликнув по кнопке Редактировать рядом с фамилией студента (становится активной после выбора студента) можно отредактировать данные для аутентификации студентов.

About

В настоящее время модульный журнал доступен всем студентам очной формы обучения.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published