profcomff / dwh-definitions

Data structures and migrations library
https://pypi.org/project/profcomff-definitions/
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

[timetable-DWH] Ресерч нового источника расписания #55

Closed mixx3 closed 1 month ago

mixx3 commented 1 month ago

цифровой университет (вроде так называется) разрабатывает много сервисов для физфака, один из них это расписание https://phys.test.my.msu.ru/#/public/schedule у них есть публичный апи примено вот но такому url https://api.test.my.msu.ru/gateway/public/api/v1/public_content/lessons?schedule_id%5B%5D=1&course_id=2&flow_id=1&date_from=2024-06-02&date_to=2024-06-30 нужно исследовать возможность заливки расписания в наше хранилище defenition of done: 1)ответить на вопросы: можно ли заливать расписание, как часто можно делать запросы, есть ли какая-то аутентификация 2) написать какой-нибудь скрипт, чтобы удобно было с его помощью отправлять запросы по вопросам можно идти к @mixx3 @Arzangulyan @dyakovri

mixx3 commented 1 month ago

@Zimovchik, спроси у @Arzangulyan по поводу ручки для групп нужно узнать как получать список групп

mixx3 commented 1 month ago

1) сделать схему в definitions RawTimetableApi с полями id - наш айди group_name - наименование группы (str) - по которой делаешь запрос discipline_name - наимернование пары (str) discipline_id - идентификатор пары (int) classroom_name - наимернование кабинета (str) classroom_id - идентификатор кабинета (int) lesson_type - тип события (str) например "Лекция" lesson_from_dttm - дата и время начала пары (str или timestamp) lesson_to_dttm - дата и время конца пары (str или timestamp) teacher_users - как json study_groups - тоже как json

2) сделать схему в definitions OdsTimetableApiFlattened - строится на RawTimetableApi c полями id - наш айди group_name - наименование группы (str) discipline_name - наимернование пары (str) discipline_id - идентификатор пары (int) classroom_name - наимернование пары (str) classroom_id - идентификатор пары (int) lesson_type - тип события (str) например "Лекция" lesson_from_dttm - дата и время начала пары (str или timestamp) lesson_to_dttm - дата и время конца пары (str или timestamp) teacher_full_name - имя преподавателя (str) - flatten list из teacher_users study_group_id - идентификатор группы (int) - flatten list из study_groups study_group_name - наименование группы (str)- flatten list из study_groups

3) в DimLecturerAct, DimGroupAct, DimRoomAct, DimEventAct добавить поле source_name (в дальнейшем туда будем писать source_name='api' или source_name='html' если из rasphysmsu + возмонжо source_name='manual' для ручных правок)

mixx3 commented 1 month ago

да, ручки закрытые поэтому придется как-то забирать всё нужное из ручки расписания)