Skip to content

Repository files navigation

🎓 Система Поиска и Ранжирования Образовательных Программ

📌 Описание проекта

Программное решение для проекта ПоВузам, которое позволяет:

  • Искать образовательные программы и вузы по фильтрам (регион, форма обучения, стоимость, ЕГЭ и др.)
  • Получать персонализированные рекомендации с учётом приоритетов пользователя
  • Быстро и удобно принимать решения по выбору университета

💠 Технологии:

  • Python 3.12
  • SQLAlchemy
  • PostgreSQL
  • Pydantic
  • FastAPI
  • Make

⚙️ Сборка и запуск проекта

📂 Структура сборки

Сборка проекта автоматизирована с помощью Makefile. Важные этапы:

  1. make docker-build — установка зависимостей, подготовка среды.
  2. make docker-up — запуск собранных сервисов
  3. make init-db — инициализация базы данных (создание схем, миграции).

⚠️ Важно: после выполнения make clean,make rebuild необходимо снова вызвать make init-db, так как база данных будет очищена.


🔧 Команды Makefile

make docker-up    # Сборка проекта (pip install ...)
make init-db      # Инициализация базы данных
make docker-clean # Очистка проекта от временных файлов
make style-check  # Проверка кода PEP8
make test         # Запуск тестов

📊 Алгоритм ранжирования

  • Соответствие баллов пользователя проходному баллу программы
  • Рейтинг вуза
  • Наличие общежития
  • Статус государственного вуза
  • Стоимость обучения / бюджет
  • Заполненность данных
  • Количество свободных бюджетных мест

🔎 Примеры фильтров

  • Регион: Москва
  • Тип: Государственный
  • Общежитие: True
  • Форма: Очная
  • Баллы ЕГЭ: 230
  • Предметы: Математика, Русский, Информатика

📬 Пример запроса и ответа

📡 Адрес запроса:

http://localhost:8000/docs
GET http://localhost:8000/university-filtering

🔹 Пример запроса (GET /university-filtering):

/university-filtering?
  region=Москва&
  is_goverment=true&
  has_dormitory=true&
  education_form=Очная&
  user_score=230&
  user_exams=Математика&
  user_exams=Русский&
  user_exams=Информатика&
  page=1&
  page_size=5

🔸 Пример ответа (JSON):

[
  {
    "id": 42,
    "long_name": "Московский государственный технический университет",
    "short_name": "МГТУ",
    "geolocation": "Москва",
    "is_goverment": true,
    "rating": 89,
    "dormitory": true,
    "army": true,
    "programs": [
      {
        "id": 101,
        "direction": "Информатика и вычислительная техника",
        "profile": "Прикладная информатика",
        "education_form": "Очная",
        "is_free": true,
        "price": null,
        "passing_score": 227
      }
    ]
  }
]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages