Добрый день!

Сначала небольшая предыстория:

Многие из вас когда‑то поступали (или будут поступать) в вузы. Это происходит обычно 1 раз в жизни, поэтому абитуриенты часто не понимают всей специфики работы приёмной комиссии, построения списков, сроков зачисления и т. п. Часто этим просто лень заниматься. Да плюс ещё эти правила приёма меняются каждый год (более того скажу — чаще чем раз в год) и уследить за этим обычному человеку не представляется возможным.

В прошлом году вернулись (через более чем 10 лет) к поступление по приоритетам. Что это значит? Абитуриент расставляет приоритеты в конкретном вузе для бюджетных мест (я хочу сначала на специальность№ 3, потом на специальность№ 1, а потом на специальность№ 2) и вуз должен подсчитать куда человек может поступить. Для этого он берёт список всех абитуриентов и расставляет их в порядке приоритета и количества баллов. Если человек проходит в список по 1му приоритету, то он там остаётся, если нет, то вуз его пытается «засунуть» в список по 2му приоритету и т. д.

Система в целом, может, и запутанная, но абитуриенту, если честно, поступить в этом плане проще, т.к. раньше он сначала подавал документы в 5 вузов на (к примеру) 5 специальностей и должен был мониторить ситуацию по 25 спискам. Теперь же он подаёт оригинал в один из этих 5 вузов и это является его выбором. А вуз уже смотрит может он поступить или нет.

Конкурсную ситуацию вузу рассчитать без специального алгоритма невозможно, т.к. сначала абитуриент попадает в список, а потом его другие люди могут «выпихнуть» из этого списка, и он должен уже идти по следующему приоритету.

Поэтому был написан код, с которым можно ознакомиться на гите.

Небольшое описание:

Sql-файл должен строиться таким образом. Файл запроса должен включать следующие позиции:

  1. id абитуриента;

  2. Конкурс (id плана набора, либо какой-то другой способ разделения списков);

  3. Количество мест в этом конкурсе;

  4. Номер приоритета в порядке возрастания;

  5. id вакансии абитуриента, на который мы будем устанавливать оригинал Начиная с 6го столбца должны быть параметры (не более 20 штук), по которым будет строиться список.

123

Сначала сортировка по первому параметру по убыванию, потом по второму и т.д.

Все параметры ВСЕГДА сортируются по УБЫВАНИЮ вне зависимости от sql-запроса Сортировка sql запроса должна быть сначала по 1му столбцу (id абитуриента), потом по 4му (Номер приоритета в порядке возрастания).

Работа программы занимает не более 2х секунд с параллельными вычислениями и не более 4х с последовательными. Это при объёме всех абитуриентов высшего образования с оригиналами (5178 абитуриентов и 17878 у них вакансий).

Количество обходов всех абитуриентов при параллельном вычислении может изменяться (в нашем случае получалось 6-10), но на качество полученных данных это не влияет

А теперь сама история (и собственно заголовок статьи об этом говорит)

Т.к. уже несколько лет списки поступающих строятся по СНИЛСам, а СНИЛС уникален, то можно легко найти куда ещё подавал документы абитуриент, и подсчитать для него шансы на поступление.

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

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

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

Итак, сам бот: t.me/allabitsbot

Туда вводится СНИЛС поступающего и выдаётся необходимая информация. Можно ввести команду /test и проверить работу бота:

Если есть желающие помочь проекту в части получения информации с помощью получения данных с сайтов — welcome.

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


  1. webhamster
    10.07.2024 13:55
    +1

    Так вот зачем нужен был СНИЛС!


    1. Mastersland Автор
      10.07.2024 13:55

      Ахаахах) и не говори) на самом деле это удобно, так как он есть у всех и не меняется (в отличии от паспорта например)


  1. amakarychev
    10.07.2024 13:55

    Идея супер! Попробуйте подать на грант,или на акселератор,чтобы найти команду и масштабировать проект до федерального уровня


  1. somagic
    10.07.2024 13:55

    Раньше был агрегатор, который собирал инфу со всех вузов кто куда подал вплоть до оригинала аттестата, но потом стали СНИЛС и проект перестал существовать


    1. vaskell
      10.07.2024 13:55
      +1

      В этом году работает https://abiturientonline.ru/


      1. Mastersland Автор
        10.07.2024 13:55

        не знал об этом проекте, спасибо. Попробую скооперироваться


    1. Mastersland Автор
      10.07.2024 13:55

      там дело не в том, что СНИЛС появился, а в том что данные проекты

      а) трудозатратны (много вузов, у каждого вуза свой сайт)

      б) очень ограничены во времени (приёмная кампания скоротечна)