API системы плагинов лабораторных работ закрытого проекта LabGen
- Платформа для генерации уникальных заданий
- Система автоматического тестирования программ на языке Java
- Кроссплатформенность и защищённость
- Многофункциональная административная панель с ролевой моделью безопасности и разделением прав на учебных дисциплинах
- Веб-клиент, построенный на фреймворке Bootstrap, с заменяемой темой оформления и полной адаптивностью. Возможность сдавать лабораторные работы с мобильных устройств
- Возможность интеграции в различные учебные дисциплины путём написания плагинов
Все части проекта изначально были написаны на Java с единой объектно-ориентированной сетевой частью
На данный момент сервер представляет собой симбиоз PHP ядра с локальным API и тестировочного сервиса на Java
Тестирование пользователя/пользовательской программы на Java происходит в реальном времени при помощи WebSocket'а с веб-страницы
Плагин должен содержать как минимум одну реализацию PluginBase
(логику плагина) и одну реализацию PluginFactory
(дескриптор плагина)
В корне архива с плагином должен лежать файл параметров plugin.properties
, ключ "factory" которого должен ссылаться на реализацию PluginFactory
PluginFactory
обрабатывает запросы о старте тестирования и также идентифицирует сам плагин
PluginBase
может подписываться на "события" получения различных сетевых сообщений от клиента и при помощи предоставленных утилит работать с клиентом
- Система контроля прав доступа административной панели (DPS - Distributed permission system)
- Распределение и привязка прав к учебным дисциплинам (CRS - Course role system)
- Импорт и экспорт данных
- Массовые операции над объектами системы при помощи логических запросов
- Защищённая и контроллируемая песочница для исполнения потенциально вредоносного пользовательского кода
- Автоматическая проверка программ по косвенным признакам и перехват вызовов используемых библиотек
- Комплексное обеспечение безопасности системы
- Интеграция редактора методических указаний по лабораторным работам в реальном времени, работающем на языке разметки Markdown
- Возможность выдачи временных прав администраторам
- Система достижений студентов для повышения мотивации соревновательным методом
- Улучшение дизайна административной панели и клиентской части
- Внедрение "онлайн"-компилятора на странице проекта
- Интерактивное обучение работе в системе при первом входе
- Увеличение количества тем и интеграция редактора тем