Каждый выпускник школы сталкивается с проблемой выбора профессии и, следовательно, ВУЗа. Этот этап жизни является наиболее сложным для школьника психологически: нужно подготовиться и сдать экзамены, от которых зависит, наберут ли они проходной балл в выбранное учебное заведение. Сам процесс поступления тоже является источником стресса: новая система подачи документов не гарантирует 100% зачисление даже с необходимыми баллами. До самого последнего момента абитуриент не знает, пройдёт он или нет на бюджет в выбранных ВУЗах и решение о подаче оригиналов документов приходится принимать на основании ограниченной информации и своих собственных предположениях о дальнейшем развитии ситуации. Получается, все выпускники последние 2 месяца лета не наслаждаются заслуженным отдыхом, а всей страной играют в покер со ставками на свое дальнейшее образование!

Что можно сделать, чтобы снизить градус напряжённости для себя и/или своего ребёнка? В данной статье мы рассмотрим инструменты облегчающие и даже автоматизирующие процесс мониторинга конкурсных списков - ведь вовремя полученная информация поможет принять правильное решение в условиях всеобщей неопределенности.

Правила поступления в 2023

Начнем с формального перечисления основных правил поступления в вузы РФ в 2023 году:

  1. Прием документов проводится в рамках одной волны, с 20 июня по 25 июля

  2. Подать заявления можно в максимум 5 вузов, в каждый из них не более чем на 5 различных направлений.

При этом:

  • В 2022 году чтобы оказаться в приказе зачисленных в вуз, требовалось подать согласие на зачисление и оригинал аттестата. В 2023 году достаточно не отозвать оригинал аттестата в день издания приказа.

  • Использование возможности поступить без вступительных испытаний (далее БВИ) доступно только один раз и в один вуз.

Новый подход, как водится, не без проблем. На данный момент не существует единой системы с актуальной базой заявлений поступающих. Что собственно приводит к тому, что абитуриенты не знают, кто в текущих конкурсных списках реально претендует на те же места, а кто уже поступил или заинтересован в другом вузе или направлении. В итоге, абитуриенты должны вручную проверять разрозненную информацию о других поступающих, что в условиях постоянно изменяющихся списков и устаревших, тормозящих и нелогичных сайтов ВУЗов по сложности стремится к уровню «практически невозможно остаться в своём уме».

Немаловажная деталь: если абитуриент отдал свой оригинал аттестата в один из вузов, то на данный момент он может рассматриваться на поступление только на направления этого вуза. Из конкурсных списков остальных вузов его можно исключить, пока он не перенесет свой аттестат в другое учебное заведение.

Собственно желание помочь абитуриентам и сподвигло меня на написание данной статьи. Далее мы подробно рассмотрим реализацию системы мониторинга заявлений абитуриентов (написана мной  в волну поступлений 2022 года), а также обсудим варианты для ее совершенствования. Исходный код можно найти по следующей ссылке.

Что за система?

Основная идея для моего решения состоит в использовании какого-то общего идентификатора абитуриентов, чтобы иметь возможность соотносить заявления из разных вузов. В каждом ВУЗе школьникам присваиваются свои уникальные идентификаторы, различные для каждого учреждения.Но учитывая тот факт, что более 95% поступающих - граждане РФ, и они также предоставляют ВУЗам информацию о номерах СНИЛС (единого для всех формата), мы можем использовать их в качестве идентификатора абитуриентов в нашей системе. В итоге мы получим решение, охватывающее наибольшее количество абитуриентов, что позволит нам с наибольшей точностью определять реальные позиции людей в конкурсных списках.

Так как процесс переноса оригинала аттестата - не минутное дело, мы можем не включать абитуриентов в текущие конкурсные списки, если на данный момент их оригинал лежит в другом вузе. Поэтому обновлять данные достаточно раз в день (за исключением последнего дня публикации приказов, когда перенос документов еще возможен). Также можно сразу исключить и абитуриентов, которые уже поступили по БВИ в какой-либо вуз, тем самым имея возможность сократить кол-во людей в вершине списка с высокими баллами (в большинстве случаев это так). По итогу актуальные конкурсные списки должны содержать только тех абитуриентов, кто имеет возможность на момент запроса информации поступить на конкретное направление в вузе либо предоставив оригинал аттестата, либо онлайн поменяв приоритеты своих направлений (при уже предоставленном документе).

Основной функционал системы должен позволять нам получать следующие данные:

  1. Полные конкурсные списки с отображением баллов,фактом предоставления оригинала  аттестата, и какое направление является приоритетным для каждого абитуриента
    DataVisualizer::show_all_students_and_agreement_where_score_ge

  2. Актуальные конкурсные списки с учетом заявлений в другие вузы и отображением приоритетного направления  в текущем вузе (для которого генерируется ответ).
    DataVisualizer::show_all_students_and_chosen_profile_where_score_ge_and_admission_possible

  3. Актуальная информация по всем заявлением на поступление конкретного абитуриента с указанием информации о балле и текущей позиции в конкурсе, а также количеством бюджетных мест и текущем проходном балле на направлении.
    DataVisualizer::show_current_applications_details_for

Также мы можем получить не менее важную информацию:

  • Распределение оригиналов аттестатов по вузам: всех оригиналов и только тех, кто еще находится в процессе поступления (не поступил ранее).
    DataVisualizer::show_agreements_distribution DataVisualizer::show_pending_agreements_distribution

  • Статистика по вузам или направлениям: количество поданных оригиналов и бюджетных мест, текущие минимальный, средний и медианный баллы, а также перцентили 80, 90 и 95.
    DataVisualizer::get_universities_statistics
    DataVisualizer::get_profiles_statistics

Для функционирования системы осталось заполнить ее данными. На данный момент реализован только оффлайн режим загрузки файлов: csv таблицы или html страницы. Так как у каждого вуза существует своя система трекинга заявлений, и каждая из них имеет свою структуру, было решено сконцентрироваться на универсальном решении, которое можно потом легко расширить. Есть базовый Parser и несколько его реализаций для CSV и HTML. Чтобы добавить новый вуз в систему и возможность загрузить его данные, достаточно реализовать один из базовых парсеров и описать структуру данных (для каждого вуза она разная)::

  • for_university - для какого вуза данная реализация.

  • _headers_mapping - какие поля нам надо считывать (названия колонок).

  • _parse_student_id, _parse_agreement_submission и _parse_dormitory_requirement - как выглядят данные об идентификаторе, согласии на зачисление / наличие оригинала и просьбы на предоставление жилья.

Для csv файлов также может потребоваться указать _delimiter - разделитель колонок в файле (по умолчанию ";"). Для подготовки данных в виде csv файлов достаточно просто скопировать таблицы с сайтов вузов с конкурсными списками и сохранить их в excel файл.

Для html страницы же потребуется немного посмотреть в структуру страницы и далее определить поиск нужной таблицы в _find_applications_table_data для дальнейшего считывания данных, а также как именно каждую строку таблицы преобразовать в одну модель абитуриента - _parse_student_from_html_row. Примером может послужить имплементация для МАИ. Сами парсеры html требуют чуть больше работы с кодом, но зато на выходе достаточно просто сохранить веб страницу с данными и предоставить ее системе. Реализовав парсер один раз вы будете экономить больше времени в будущем.

Вероятно часть уже реализованных парсеров придется обновить в связи с обновлением сайтов и структур данных каждого вуза, но данная разработка может послужить хорошим базисом для доработки новой версии, актуальной для нового 2023 года поступления.

Я хотел сделать эту систему полностью автоматической, но столкнулся со следующими проблемами:

  1. Не у всех вузов есть веб сайты с конкурсными списками, некоторые публикуют только csv файлы (например ВШЭ), некоторые — pdf файлы (МГТУ им. Баумана).

  2. Иногда вузы предоставляют доступ только авторизованным пользователям, притом вы также должны участвовать в конкурсе на поступление.

  3. Часто сайты устроены так, что нам надо точно знать, где (в селекторе, чекбоксе и др.) и что надо нажать на сайте для получения нужного списка данных. Так как url страниц для разных направлений в большинстве случаев совпадает, это значительно усложняет полную автоматизацию.

Потому представленная система не претендует на полную замену ручного труда и вам все равно придется раз в какое-то время подготавливать данные для системы, чтобы иметь актуальную информацию по конкурсным спискам. Но согласитесь, это значительно упрощает анализ реальной ситуации. Гадалка больше не нужна!

Как пользоваться

На данный момент существует три способа использования текущих наработок:

  • Запустить python скрипт (на выходе получаем pdf файл);

  • Собрать docker image и далее его запустить; или

  • Вы можете воспользоваться уже готовым Jupyter Notebook.

Как уже описал выше, в системе также предусмотрена возможность генерации PDF файла DataVisualizer::get_report_for со статистикой для конкретного абитуриента: brief с деталями по вузам и каждому из заявлений абитуриента и full с добавлением полных конкурсных списков, в которых абитуриент участвует.

Для запуска системы также потребуется вначале собрать данные, на основе которых вы хотите построить текущую модель и получать актуальные сведения. Для этого потребуется для каждого вуза и каждого из направлений создать отдельный файл с названием, заданным по следующему паттерну: "{university}{profile}", в некоторых случаях профиль направления может быть составным: его можно задать как "{profileId}{subField}". Примеры: "MIPT_01.03.02" или "SPBSU_01.03.02_5156-1".

Собрав все файлы в одной директории вам остается только указать полный путь к ней при запуске скриптов. Отдельно вы можете вручную собрать статистику по уже поступившим по БВИ в файл с названием "ALREADY_LISTED.csv"(имеет определенную структуру), который позволит исключить этих абитуриентов из других конкурсных групп.

Запуск python скрипта

Достаточно запустить в терминале следующую команду python generate_report.py

и передать туда следующие параметры:

  • --student_id - идентификатор абитуриента (обязательный параметр)

  • --data_dir - путь к папке с данными

  • --type - тип отчета (brief или full)

  • --student_id - идентификатор абитуриента (обязательный параметр)

Полная команда может выглядеть следующим образом:

python generate_report.py \
      --student_id '185-597-938 50' \
      --data_dir ./data \
      --type FULL \
      --output_dir ./reports/

Сборка docker образа и запуск

Для сборки docker образа надо запустить следующую команду:

docker image build -t generate_report:0.1 ./

Для запуска:

docker run \
   --mount src="$(pwd)/data",target=/app/data/applications,type=bind \
   --mount src="$(pwd)",target=/app/data/reports,type=bind \
   -e STUDENT_ID="185-597-938 50" \
   -e TYPE=FULL \
   generate_report:0.1

Где:

  • app/data/applications - загрузочные файлы с данными о поступающих.

  • app/data/reports - сгенерированные отчеты будут размещаться по этому пути.

Заключение

Мы все знаем, что поступление в ВУЗ - сложный этап в жизни каждого школьника и его родителей, отнимающий оставшиеся после ЕГЭ нервные клетки. В этой статье я привёл решение которое  полу-автоматизирует мониторинг конкурсной ситуации в университетах и значительно упрощает жизнь абитуриенту. 

Решение релевантнои для ВУЗов : им тоже важно понимать ситуацию с поступлением, чтобы не упустить талантливых абитуриентов и закрыть конкурс без дополнительных волн.

Систему можно и нужно улучшать: начиная с добавления парсеров для еще неучтенных ВУЗов или других форматов данных и заканчивая полной автоматизацией с загрузкой данных в режиме реального времени. И, конечно, это может послужить отправной точкой в развитии общей российской платформы поступления в вузы!

Комментарии (17)


  1. kenoma
    30.12.2022 14:53

    Нотариально заверенная копия аттестата не выручает?


    1. valeriyknyazhev Автор
      30.12.2022 15:30
      +1

      Насколько знаю, все равно ее надо отзаявлять, ибо два согласия в один момент времени в разных вузах могут привести к запрету на поступление в оба места в этом году из-за нарушения.

      Но, если данная вещь действительно работает и позволяет немного облегчить процесс, и кто-то может подтвердить на реальном опыте, то уже какой-то хороший результат от данной статьи очевиден :)


      1. kenoma
        30.12.2022 19:23

        Не владею темой, но действительно, хотел бы знать как это работает.


  1. KivApple
    30.12.2022 15:49

    Какая же сложная система (не ваша) против студента и университета...

    Вот во Франции абитуриенты составляют список приоритетов из N программ вузов. Вузы в свою очередь получая списки своих потенциальных студентов от государственной системы составляют свои списки приоритетов, кого хотят видеть (при этом им доступна информация из аттестата). Дальше система решает задачу о Марьяже (раньше мужьями были вузы, теперь абитуриенты, что улучшило их положение) и получаются результаты, кто куда поступил. Все довольны и никаких оригиналов аттестатов влияющих на поступление. А почему-то в стране с "самыми лучшими в мире цифровыми госуслугами" до такого до сих пор не додумались и решают не твои оценки и желания, а куда ты отнёс оригинал бумажки, а куда копию...

    P.S. Мог где-то немного приврать, ибо пересказано со слов одного из универских преподавателей с моей французской магистратуры (во время изучения централизованных и децентрализованных систем принятия решений - как пример из реальной жизни), а туда я уже поступал по другой процедуре, на бакалавриате во Франции никогда не учился.


    1. DvoiNic
      30.12.2022 20:02
      +1

      Вроде несколькими годами ранее в России было нечто подобное, только решение принималось в рамках каждого (одного) ВУЗа, после чего был этап окончательного выбора абитуриентом ВУЗа (передачи оригиналов), зачисления совпавших «по желанию ВУЗа и выбору абитуриента», и второй волны зачисления примерно по тому же принципу уже на освободившиеся места.
      Это, конечно, приводило к странному набору выбранных специальностей у некоторых студентов. Но было более-менее предсказуемо. Почему и зачем изменили — не совсем понятно


    1. valeriyknyazhev Автор
      31.12.2022 01:40

      Самое интересное, что в половине вузов в прошлом году говорили, что приоритетов больше не существует, и все регулируется доп согласием на зачисление на конкретное направление в конкретном вузе. Еще больший капкан в том, что если уже подал согласие на зачисление в условный Х ВУЗ, то переподать в другой уже не имеешь права (так решило наше законодательство в области образования). И максимум, что доступно с этого момента, это только следить за конкурсом по всем выбранным направлениям в этом ВУЗе Х и иметь возможность переносить согласие между этими направлениями, про приоритеты в рамках даже одного вуза все забыли с таким нововведением, что усложнило и так уже сложный процесс. И да, кол-во разрешенных переносов согласия было ограниченным или зависело от ВУЗа.

      Спасибо и на том, что в этому году решили откатить ту поправку!


  1. kuber
    30.12.2022 16:55

    Забавно , конечно. А вы в курсе что есть Супер сервис у которого есть доступ ко всем конкурсным спискам всех вузов России?


    1. valeriyknyazhev Автор
      30.12.2022 17:11

      К сожалению, не все подаются через госуслуги, потому был не в курсе.

      Да и сложно представить, что все дети побегут регистрировать себе аккаунты на госуслугах (особенно если родители держатся в стороне от процесса поступления), так что мне кажется половине поступающих этот Супер сервис недоступен

      Да и доверия нашим госуслугам минимум, я лично был бы готов отстоять в очереди лишние пару часов чтоб забрать оригинал из одного вуза, и отвезти в другой в последний день, чем узнать, что Супер сервис лежит весь день и никакие заявления онлайн нельзя изменить, я бы не исключал этого ???? Можно даже вспомнить недавние периоды невозможности залогиниться туда, когда люди ринулись отключать доп флажки в своем кабинете, чтоб избежать получения повестки через онлайн. Так что мое решение как минимум можно использовать в качестве запасного ???? Ну и как минимум это был интересный опыт написания чего-то подобного ????

      Интересно правда, как они решили вопрос идентификации тех, кто не живет в России и не имеет СНИЛС


      1. kuber
        30.12.2022 18:27

        Причем здесь как подают? Там информация обо всех.


        1. valeriyknyazhev Автор
          30.12.2022 18:37

          А вы уверены, что эта информация доступна всем?

          Например при подаче в МАИ конкурсные списки этого вуза могли видеть только подавшие туда. Потому я не могу утверждать, будет ли это доступно всем и тем более без регистрации.

          Фразой про «не все подаются через госуслуги» я объяснил, почему я не был в курсе про этот «Супер сервис», и другие могут также не знать.

          Спасибо, что поделились этой информацией, но думаю, мою идею вы тоже смогли понять. Тот же Хабр сегодня очень часто выдает таймаут на стороне серверов, и нет никакой гарантии в надежности тех же госуслуг в самый нервный день в году для всех одиннадцатиклассников (а их будет много, значит и нагрузка будет приличная), и не будет никакой всей информации обо всех одномоментно. Готовы взять такие риски?


          1. kuber
            30.12.2022 19:53

            Да причем здесь госуслуги? Я вам говорю, что есть сервис где есть все необходимые вам данные. А сможете вы с ними договариться или нет это уже другой вопрос. Но без этих данных ваш сервис просто игрушка.


            1. avbelyaev
              30.12.2022 21:39
              +1

              Вы уже 3 раза упомянули какой-то супер сервис но ни одной ссылки, ни даже названия не привели. Я, вот например, тоже не в курсе. Поделитесь с общественностью?


              1. kuber
                30.12.2022 22:05

                Он так и называется СуперСервис "поступление в вуз онлайн".

                https://www.gosuslugi.ru/vuzonline


                1. valeriyknyazhev Автор
                  31.12.2022 00:59
                  +1

                  Вам не кажется, что Вы своей ссылкой подтвердили, что оно привязано к госуслугам?????

                  Больше похоже на какой-то наброс, потому смысла продолжать спорить с Вами не вижу!

                  Я изначально и не претендовал на «Супер систему», которая соберет Вам все данные по всем всем, это был домашний мини проект, который писался в момент поступления в 2022 году (правила почти не изменились), и я решил поделиться им с другими людьми, вдруг кому окажется тоже полезным.


          1. PeterZha
            31.12.2022 01:08

            Конкурсные списки МАИ и в этом году и в предыдущие годы были доступны на сайте приемной комиссии без регистрации и смс любому желающему, это требование закона.

            Могу это смело утверждать, как создатель маевского аналога адмлиста для восьмого факультета, в котором помимо МАИ было ещё 12 вузов России с автоматическим парсингом (в т.ч. pdf из Бауманки и Excel из вышки).

            Идея что-либо в этой сфере парсить раз в день хороша только для умозрительной статистики - в последние два-три конкурсных дня ситуация может кардинально измениться за полчаса.


            1. valeriyknyazhev Автор
              31.12.2022 01:29

              Речь идет про конкурсные списки, которые публикуются на момент закрытия приема документов, или в режиме риалтайм? Потому что в прошлом году нам комиссия не смогла с этим помочь, и сказали просто логиниться всегда. Но кто знает, это лишь наш опыт взаимодействия.

              Из практики: в последний день, да, согласен, там нужно что-то, работающее в реальном времени и реагирующее на постоянные обновления. Но для понимания, куда вообще можно подавать и куда есть шансы пройти, довольно полезная штука была. Мы использовали его раз в 2-3 дня, чтоб мониторить нашу ситуацию и если что, вносить коррективы.

              Стоит отдать должное одному из ВУЗов (для которых есть реализация в моем решении ), точно вспомнить не могу название, они в своих конкурсных списках в какой-то момент начали добавлять информацию обо всех абитуриентах: есть ли согласие в другой вуз и куда конкретно (была мысль, раз это сделали только в одном вузе, видимо настроили свой мониторинг, но видимо был не прав). Люди хотя бы могли понять свое реальное место в каждом из списков на данный момент. Теперь закрадываются мысли, а не МАИ ли это был.

              Хочу задать Вам теперь вопрос, как человеку, который создавал свой аналог для мониторинга ситуации среди 12 вузов, были на то причины? А то на небе только и разговоров, что о Супер сервисе????


              1. PeterZha
                31.12.2022 12:25

                В этом году прием заявлений заканчивался 25 июля, прием оригиналов аттестатов и окончание конкурса - 3 августа. Законодательство обязывает ВУЗы публиковать рейтинговые списки поступающих с момента окончания приёма заявлений (т.е. с 26 июля) не реже одного раза в сутки. По факту большинство ВУов начинают делать это раньше, в этом году на сайте ПК МАИ они появились где-то 12 июля, с 15 числа я наладил парсеры и понеслось.

                Фактически, публикация списков на сайте ПК МАИ происходила каждые 15 минут, выгрузка данных для этих списков из внутренних систем ВУЗа один раз в час.

                Автором ресурса, о котором Вы говорите, являюсь я и этот ресурс к приемной комиссии университета не имеет отношения, это чисто фан проект преподавателя конкретного факультета. В этом году в базе было сто тысяч абитуриентов и шестьсот тысяч заявлений.

                С технологической точки зрения у нас нет препятствий для формирования и публикации таких списков по всем ВУЗам и специальностям, которые мы парсим (приблизительно три тысячи отдельных конкурсных групп) и даже формировать отдельную информацию для каждого абитуриента по всем его конкурсам. Но поскольку это мой ВУЗ и мой факультет, то естественно рассматривать существование таких списков как дополнительное конкурентное преимущество :)

                Появился он в закрытом режиме три года назад, в публичном виде работает два года, возможно, будет работать и в этом. Причины в общем-то просты - авторы admlist устали от своего проекта, с переходом на СНИЛС/УКП вместо ФИО из-за скандалов с ПК МГУ и последующим фактически полным закрытием данных ПК МГУ интерес их явно угас и списки появлялись очень поздно и для очень малого количества вузов. Наличие таких данных позволяет нашей ПК иметь удобный источник аналитики и понимание расклада конкурсной ситуации. Ну и само собой, в эти три года поступали дети друзей и наши дети :).

                Относительно суперсервиса все сложно - теоретически у них действительно есть все ресурсы и сведения чтобы либо решить задачу об идеальном марьяже, либо предоставить абитуриенту полный расклад конкурсной ситуации. Но фактически его цель иная - это уменьшение внутренней коррупции в приемных комиссиях (все данные обязаны попасть в ФИС ГИА) и формирование аналитики для Минобрнауки. Все остальное на сегодня это побочные эффекты, но все может измениться в любой момент, если они того захотят. А вот захотят ли..