Добавить новость

Путин может встретиться с президентом Палестины Аббасом 13 августа

В Москве задержали врезавшегося в дом на машине каршеринга подростка

В аэропорту Благовещенска 300 пассажиров более суток не могут улететь в Москву

Артист Грек пожертвовал миллионы на борьбу с искусственным интеллектом, чтобы защитить будущее



Новости сегодня

Новости от TheMoneytizer

Разработка парсера (Kotlin)

Как добавить своё расписание в приложение Кампус

Мобильное приложение Кампус работает с автоматически обновляющимся расписанием. В приложении нельзя редактировать расписание или создавать полностью собственное. Но при наличии навыков программирования можно добавить расписание своего ВУЗа.

Что такое "парсеры"

Расписание в мобильном приложении обновляется автоматическими программами, которые запускаются каждый день, для каждого вуза. Данные программы называются "парсеры". Их принцип работы прост - они заходят на общедоступный источник расписания (например сайт вуза, или REST API), собирают информацию о списке групп и расписании каждой группы на 2-4 недели вперед, после чего отправляют собранную информацию на сервер Кампуса.

Мобильные приложения работают с данными сохраненными на сервере Кампуса, поэтому обновление расписания в приложении происходит раз в день, а не сразу после изменения на сайте ВУЗа.

Добавление своего парсера

Чтобы расписание появилось в приложении нужно сделать несколько шагов:

  1. В панели администратора должна быть создана запись нового ВУЗа. Это делает администратор проекта Кампус. Для этого потребуется:
    • Сокращенное название
    • Полное название
    • Логотип (круглый, 225х225, png/jpg)
    • Город
    • Координаты главного корпуса (долгота, широта)
  2. Администратор даст вам логин и пароль от тестовой среды, для реализации парсера. Данные логин и пароль потребуются для отправки на сервер Кампуса подготовленного расписания.
  3. Нужно разработать свой парсер, используя готовый SDK на языке Kotlin и пример парсера. Для разработки используйте шаблон.
    • Зарегистрируйтесь на GitHub
    • Создайте новый проект из шаблона (кнопка Use template)
    • Сделайте изменения описанные в разделе Template в Readme
    • Реализуйте свою логику получения расписания и передачи в сдк для отправки на сервер Кампуса
  4. Протестируйте свой парсер на тестовой среде
    • Для этого передавайте в parserApiBaseUrl адрес https://parser.api.campus.dev.dewish.ru/v3/ и в Credentials логин/пароль полученные от администратора
    • Запускайте парсер, чтобы он полностью отработал, после чего можете проверить какое расписание сохранилось в Кампусе на странице https://web.campus.dev.dewish.ru
    • Исправьте все найденные проблемы, проверьте разные группы на соответствие оригинальному расписанию. Важно чтобы все данные соответствовали оригиналу.
  5. Передайте парсер для проверки в Кампус.
    • Отправьте на почту информацию про ваш парсер - ссылка на github проект с парсером, название вуза на тестовой среде.
    • Команда Кампуса проверит корректность собранного расписания на тестовой среде, сверит с оригиналом. Также проведет проверку кода. Если что-то нужно будет доработать - сообщим ответным письмом.
    • После выполнения всех необходимых доработок парсер будет принят командой Кампуса для переноса с тестовой на публичную среду
  6. Передайте владение GitHub проектом в организацию https://github.com/campus-mobile
    • Вы останетесь в редакторах данного репозитория, но владельцем станет Кампус. Это нужно нам чтобы выполнять свои обязательства перед аудиторией Кампуса - если вы прекратите самостоятельно исправлять парсер, либо не будете успевать его обновлять под изменения в источнике расписания, то это сделает команда Кампуса.
    • Команда Кампуса настроит автоматизацию для автоматического выполнения парсинга.
  7. Команда Кампуса заведет ваш ВУЗ на публичной среде и запустит ваш парсер работать с публичной средой.
После выполнения всех пунктов расписание станет доступно всей аудитории Кампуса в мобильном приложении.

Разработка парсера

Команда Кампуса использует Kotlin для разработки, поэтому мы предоставляем готовое SDK на этом языке. Если вы хотите реализовать парсер на другом языке - это возможно, но повышается сложность реализации (вам нужно будет работать напрямую с REST API, которое можно посмотреть здесь), а также повышается риск что команда Кампуса не согласится принять ваш код в свою поддержку, так как используемый язык недостаточно известен команде, чтобы его поддерживать.

Принцип работы парсера следующий:

Сначала происходит получение списка сущностей (группа или преподаватель) - за это отвечает реализация интерфейса EntitiesCollector. В этой реализации вы можете прописать обращения к API или сайту вуза для сбора полного списка групп/преподавателей. Важно получать фиксированный ID сущности, чтобы изменение названия не создало дубликат расписания (расписание привязано к сущности).

Далее для составления расписания нужны интервалы времени пар - за это отвечает реализация интерфейса TimeTableIntervalCollector. Данная реализация может быть фиксированной (возвращать просто список интервалов прописанный в коде), либо может обращаться к API/сайту ВУЗа, для надежности получения актуальных данных.

Далее само расписание собирается в реализации интерфейса ScheduleCollector. На вход подается сущность, для которой собирается расписание, а также временные интервалы. В ответ данный компонент должен выдать список элементов расписания.

Последний компонент - наследник от BaseParser, он соединяет все выше описанные компоненты в единую логику и именно он включается при запуске парсера.

Читайте на 123ru.net


Новости 24/7 DirectAdvert - доход для вашего сайта



Частные объявления в Вашем городе, в Вашем регионе и в России



Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city

День строителя: какие высокотехнологичные решения предлагают столичные промышленники для строительной отрасли

ФПК назначила дополнительные поезда Белгород – Москва

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

Инспекторы ЦОМП дежурят на выставке «Станция Манеж. Московский транспорт 2030»

Музыкальные новости

50 млн рублей суд не убедили // Бизнесмена Алексея Тайчера оставили под арестом

Мастер яркого слова: Алексею Пушкову - 70

КОМПАНИЯ LG ПРЕДСТАВИТ НОВЫЙ МОНОБЛОЧНЫЙ ТЕПЛОВОЙ НАСОС THERMA V™ R290 С УСОВЕРШЕНСТВОВАННЫМ КОМПРЕССОРОМ НА IFA 2024

В аэропорту Внуково рейс в Санкт-Петербург задержали более чем на пять часов

Новости России

Эксперимент с ракетным топливом обернулся ожогами: московский подросток оказался в больнице

Валерий Коробков: «Самый долгожданный подарок мне преподнесла футбольная «Волга»

Движение поездов МЦД-2 через станцию Царицыно в центр Москвы возобновится с 12 августа

Выпуск строительных металлоконструкций с января в Москве вырос на 54,5%

Экология в России и мире

Российская туристка поняла, кому действительно стоит приехать в Америку на ПМЖ, назвав 5 категорий людей и кому туда лучше не соваться

Романтическая ностальгия как инструмент укрепления брака: возвращаем страсть в отношения

Обложка песни. Обложки альбомов песен. Сделать обложку для песни.

«Сады и люди»: что можно увидеть рассказывает Радио Romantika

Спорт в России и мире

Теннисист Зверев раскритиковал условия в Олимпийской деревне

Рублёв вышел в 1/4 финала турнира ATP в Монреале

Теннисист Рублев обыграл Янника Синнера в 1/4 финала"Мастерса" в Монреале

Теннисистка Самсонова вышла в четвертьфинал турнира WTA 1000 в Торонто

Moscow.media

«Проклятое дело» крестьянского поэта

Башни Пялинга (Ингушетия)

Sumatran tiger.

Иномарка с просторным салоном и автоматом дешевле Весты появилась в России











Топ новостей на этот час

Rss.plus






Самостоящие железобетонные заборы от компании "Строй Проект": надежность и простота установки

Ефимов: школу и детсад построят по программе КРТ в Тропарево-Никулине

Артист Грек пожертвовал миллионы на борьбу с искусственным интеллектом, чтобы защитить будущее

Посол Палестины сообщил, что президент Аббас посетит Москву 12-14 августа