Предисловие
Эта статья о моём небольшом хобби, которое помогает мне в каком-то плане развиваться, тратить энергию в нужное русло и получать при этом необходимые знания. Очень давно меня посетила идея написать игру для того, чтобы вместе с друзьями весёлой компанией собираться вечером за экранами мониторов и играть во что-нибудь. Выбрал классический вариант — игру мафию. Требования были простыми: игра должна была работать по сети, на главном компьютере ставился сервер, к нему подключалось не более 16 человек (игра дефолтно была рассчитана на максимум 16 персон, на стороне сервера число могло регулироваться от 4 до 16). Спустя примерно одно лето, игра была готова, причём, работало всё слаженно и так, как я хотел. Было всё, кроме дизайна с картинками и звуками: функциональный раздатчик ролей, таймер ходов, взаимодействие между клиентом/сервером/другими клиентами, в общем, всё было замечательно, пока у меня полностью не слетел жёсткий диск, информацию на котором сохранить на удалось. Однако, однажды я на всякий случай решил сохранить сырую версию своего проекта на почте, т.е. отправил обычное письмо сам себе. Как оказалось, не зря. Я решил, что не стоит заного восстанавливать сотни строк кода — нужно начинать новый проект. Подумав секунд двадцать, я понял, что я буду делать.
Идея
Было решено сделать программу для проверки качества знаний у учеников. Тем самым, я хотел убить двух зайцев: экономить время учителям и оценить свои навыки в программировании.
Воплощение идеи в реальность
Занимаюсь проектом я очень долго, уже больше года. До недавнего времени практически всё свободное время посвящал проекту: разработке комплекса программ и созданию сайта.
Первоначально было создано две программы: Клиент и Сервер. После первой презентации проекта и выслушивания критики стало ясно, что этих двух программ явно не хватает, так как рядовой учитель никогда не разберётся в текстовых файлах, которые на начальном этапе приходилось полностью редактировать вручную. Совсем недавно я написал две вспомогательные программы: Менеджер настроек и Редактор тестов. С этого момента взаимодействие между ресурсами осуществлялось намного проще, осталось только объяснить, зачем нужна та или иная галочка и куда лучше не тыкать.
Что из себя представляет UTC (Universal Test Complex)?
Комплекс представляет собой четыре программы, необходимые для полного управления всеми поддерживаемыми функциями.
Для работы нужно активное подключение к сети Internet.
Собственно, единственное приложение, которое видит ученик и с помощью которого проходит составленные ранее тесты. Поддерживается выбор одного правильного ответа из двух, трёх или четырёх возможных.
С помощью этого приложения учитель контролирует подключенных пользователей, может отследить ход выполнения ими тестовых заданий. Реализовано облачное сохранение результатов на сервере: если нужно вернуться и разобрать весь пройденный материал, в любое время можно открыть сервер и провести анализ выполенных тестов.
Собственно, с помощью этой программы я могу контроллировать огромный список настроек (51 настраиваемая опция).
Приложение, помогающее учителям без особых усилий создавать тесты и сразу загружать их на сервер, делая их доступными для выполнения.
Как работает?
Всё построено на HTTP, FTP и Socket.
Плюсы:
- гибкая настраиваемость
- возможность активации конкретных приложений с помощью сгенерированного ключа, запрос о которой отправляется автоматически, т.е. никому не нужно копировать, бегать, искать, куда вставить и куда отдать этот ключик
- облачное хранилище данных выполенных тестов
- рандомный датчик, с помощью которого шанс списать сведён практически к нулю, т.к. все ответы и вопросы раскидываются в абсолютно случайном порядке
- можно раздавать независимые комплексы программ, не мешаюшие друг другу, т.е. для каждой школы своя копия, данные которой доступны только ей самой
- собственный сайт, который генерирует для каждой школы свою ссылку для скачивания программ для каждой школы
- если код идеально работает, значит код сам по себе является ошибкой
Минусы:
- данный Универсальный Тестовый Компелкс, разработанный мной, ещё не запатентован
- за данный комплекс программ я ещё не получил грант
- данная программа пока распространяется только внутри школы, и только лишь совсем недавно была установлена там для работы в тестовом режиме, чтобы была возможность окончательно отладить работу
- данная программа бесплатна, в отличие от конкурента всем мировым антивирусам
- данная программа написана на Delphi и не имеет в своём составе принципиально новых революционных алгоритмов
- при разборе исходников вы не увидите странных надписей
например
- программа работает с традиционными дисковыми накопителями, принципиально новые технологии не нужны
- данный комплекс никак не меняет интерфейс системы и не вносит принципиально новые обои от товарища Дениса
Продолжаю ли я работать над проектом?
Да, конечно. В ближайшее время я не планирую закрывать его. Я считаю, что он только начинает равиваться, а что из этого может выйти, я узнаю потом. В любом случае, поставленная цель в каком-то роде достигнута, и я считаю, что это немаловажный плюс.
Вскоре я планирую написать полную инструкцию в каждой из программ, а затем начать раздавать тестовые копии бесплатно в интернете через свой сайт. Было бы интересно посмотреть, что из этого выйдет.
Послесловие
Я очень рад, что спустя какое-то время, моя программа начала приносить пользу и начала свою работу. Уже был совершён ряд различных проверок, который показал, что неотлаженных моментов в работе практически не существует. Мне очень интересно работать над подобным проектом, вдальнейшем я планирую связать себя с программированием, т.к. тянет к этой профессии не один год. Спасибо за внимание.
Автор: vakhramoff