Добрый вечер.
Задам довольно серьезный и сложный вопрос: как реализовать режимное решение задач на базе ejudge?
Режимным я называю такое использование системы, когда входишь в систему без привязки к какому-либо соревнованию и решаешь задачи из глобального пула задач, который физически находится например (/home/judges/problems/NNNNNN).
Далее продолжая мысль, можно очень быстро создавать соревнования выбирая задачи и глобального списка имеющихся задач. Информацию о задачах либо полностью хранится в MySQL таблице(problems) либо хранится как есть в XML, а в базе хранятся ссылки на XML файлы из MySQL.
Вторая идея: классификация задач по тегам с возможностью поиска и фильтрация задач. Одно из слабых мест современных проверяющих систем - слабый классификатор задач и возможности поиска. Каждой задаче присваиваются некоторые теги, темы/разделы программирования. Например, хочет студент решать геометрические задачи - пусть решает. Бывает ещё студент заходит в систему и у него возникает вопрос: "что б мне решить?" Чем бы студент/школьник не тешился, лишь бы не маялся.
Опытные олимпийцы знают куда идут но не все - опытные и не всем везет иметь в качестве тренера - директора ACM ICPC Subregional. Нужна массовость. Так можно ускорить темп подготовки олимпийцев и снизить порог вхождения, пусть будет много участников (серверные мощности не жалко).
Насчет аутентификации и авторизации, знаю что хранение в кука в SID - это самый простой вариант.
Какие тут варианты из чего выбирать?
Пытался самостоятельно отвязать все зависимости от соревнования для команды (cmd_login), в итоге написал бесполезные 3 тыс. строк , так, чтобы изменить одну функцию меняю необходимо каскадно проанализировать все вызываемые функции. Ощущение, что все это как-то хаотически получается, работаю с этой системой всего лишь полгода + не отработаны средства отладки.
Александр, есть ли у Вас подобные планы, можем ли совместно работать в общий SVN, если таких планов нет, как бы все это реализовали, если б такая задача стояла.
Заранее огромное спасибо.
Разработка режимного/внетурнирного решения задач
Re: Разработка режимного/внетурнирного решения задач
Да, это все правильно.
Есть большая необходимость в хранилище и каталогизаторе задач. Я как-то это начинал делать, но ресурсов не хватило.
Чтобы в самой системе делать "внетурнирное решение задач", нужно серьезно все переделать, так как очень много внутри завязано на "турнир".
В общем, есть желание все это делать, но нет пока хорошего понимания как.
Есть большая необходимость в хранилище и каталогизаторе задач. Я как-то это начинал делать, но ресурсов не хватило.
Чтобы в самой системе делать "внетурнирное решение задач", нужно серьезно все переделать, так как очень много внутри завязано на "турнир".
В общем, есть желание все это делать, но нет пока хорошего понимания как.
Re: Разработка режимного/внетурнирного решения задач
В каком месте сейчас находится это понимание?
Как-то тоже пытался некоторые фичи отвязать от турнира. У меня зафейлилось из за недостатка знаний в веб, но никак не из-за времени или других ресурсов.
Сколько времени примерно по вашим оценкам, нужно будет эт переделывать?
Как-то тоже пытался некоторые фичи отвязать от турнира. У меня зафейлилось из за недостатка знаний в веб, но никак не из-за времени или других ресурсов.
Сколько времени примерно по вашим оценкам, нужно будет эт переделывать?