- Описание
- Стек
- Конфигурация
- Configuration
- Cache
- Games
- ScheduleImages
- Videos
- Videos\Background
- Logs
- Deploy
- License
Данное приложение позволяет просматривать расписание Института ИТ РТУ МИРЭА, запускать различные поддерживаемые игры, просматривать видеоролики и новости с оффициального сайта РТУ МИРЭА.
Также дает возможность взаимодействовать с приложением путем использования внешнего оборудования - Kinect'a.
Адаптировано только под Kinect v2.0 Microsoft Xbox.
Существуют следующие особенности данного режима:
- В случае, если режим Администратора не активен, приложение невозможно закрыть стандартными методами, в том числе Alt+F4, так как оно будет бесконечно перезапускаться
- В режиме Администратора в верхнем правом углу будут отображаться уведомления об ошибках в работе приложения
- В режиме Администратора отображается курсор мыши
Для включения данного режима необходимо в файле конфигурации указать полю isAdminMode значение true.
Здесь используются следующие библиотеки и фреймворки:
- WPF .NET Framework 4.8
- Serilog - для структурного логирования
- Dependency Injection
- AngleSharp - для парсинга данных с интернет-ресурсов
- XUnit - для написания Unit тестов
- Microsoft.Kinect.WPF.Controls - для работы с Kinect-ом
Также активно используется паттерн разработки MVVM.
В главной директории располагаются файл конфигурации configuration.json, который имеет следующую структуру:
и файл конфигурации логирования configuration.logging.json:
"ApiSeqLoggerSettings": {
"Uri": "", // uri к серверу Seq
"ApiKey": "" // apiKey для записи логов на сервер Seq
}При взаимодействии с сервером все данные (расписание групп, новости) кэшируются на период, заданный в конфигурации в поле cacheUpdateInterval.
Пример конфигурации при периоде кэширования 30 минут:
{
"Settings": {
"isAdminMode": false,
"needCheckTime": false,
"startWorkTime": "00:00:00",
"endWorkTime": "00:00:00",
"inactiveModeTime" : "00:00:00",
"cacheUpdateInterval": "00:30:00",
"videoVolume": 0,
"backgroundVideoOrder": [],
"eggVideoCommands": []
}
}Проверка актуальности кэша осуществляется во время обращении к нему, за исключением кэша новостей. Последний обновляется постоянно, с частотой, указаной в поле cacheUpdateInterval.
Для размещения игр необходимо добавить директорию с исполняемым файлом игры в директорию Games.
Название директории будет являться названием игры в разделе Игры.
В директории Images\ScheduleImages необходимо разместить расписание курса в поддерживаемом формате (для получение из excel файла изображения можно воспользоваться любым онлайн конвертером).
Поддерживаемые форматы изображения : .png, .jpg, .jpeg.
Расписание для курсов бакалавриата размещается в директории Images\ScheduleImages\Bachelor:
- 1.* - расписание первого курса
- 2.* - расписание второго курса
- 3.* - расписание третьего курса
- 4.* - расписание четвертого курса
Расписание для курсов бакалавриата размещается в директории Images\ScheduleImages\Master:
- 1.* - расписание первого курса
- 2.* - расписание второго курса
Пример полного названия файла - 1.png.
Поддерживаемые форматы видеофайлов: ogg, mov, mp4.
Для добавления видеоролика в раздел Видео необходимо разместить видео в поддерживаемом формате в директории Videos.
Чтобы добавить видео для фонового проигрывания (режим бездействия), нужно поместить видеоролики в директорию Videos\Background и прописать название видеоролика в файле configuration.json.
Пример конфигурации при названии ролика 1.mp4:
{
"Settings": {
"isAdminMode": false,
"needCheckTime": false,
"startWorkTime": "00:00:00",
"endWorkTime": "00:00:00",
"inactiveModeTime" : "00:00:00",
"cacheUpdateInterval": "00:00:00",
"videoVolume": 0,
"backgroundVideoOrder": [
"1.mp4"
],
"eggVideoCommands": []
}
}Логи приложения пишутся в файл logs.txt, который располагается в корневом каталоге.
Также при задании конфигурации в секции ApiSeqLoggerSettings в файле configuration.logging.json возможна отправка логов на удаленный сервер.
При пустых или не указанных значениях данной секции отправка логов на удаленный сервер отключена.
Пример конфигурации
{
"ApiSeqLoggerSettings": {
"Uri": "http://localhost:5431",
"ApiKey": "my_secret_api_key_for_write_logs"
}
}Для развертывания приложения необходимо предустановить следующие компоненты:
Детальную информацию можно найти в последнем релизе
{ "Settings": { "isAdminMode": true, // включения режима админского управления, включающего в себя: возможность выключения через alt+F4 и работу мыши "needCheckTime": true, // включение режима ночной работы приложения (ночью работает герб РТУ МИРЭА, вместо фоновых видеороликов) "startWorkTime": "08:00:00", // время начала работы сервиса, HH:mm:ss "endWorkTime": "22:00:00", // время завершения работы сервиса, переход в спящий режим, HH:mm:ss "inactiveModeTime" : "00:01:00", // допустимая длительность бездействия, HH:mm:ss "cacheUpdateInterval": "00:20:00", // частота обновления кэшируемых данных, HH:mm:ss "videoVolume": 1, // уровень громкости всех видеороликов в приложении. Значение: от 0 до 1 "backgroundVideoOrder": [], // плейлист фоновых видеороликов "eggVideoCommands": [] } }