Серверная часть сервиса хранения и управления информацией о расписании
- Управление учебными группами, аудиториями
- Управление событями, комменатриями к событиям
- Управление преподавателями, фотографиями преподователей и комментариями к преподавателям
- Про понятия использоованные в этом пункте можно почитать ниже(см. Основные абстракции)
-
Перейдите в папку проекта
-
Создайте виртуальное окружение командой и активируйте его:
foo@bar:~$ python3 -m venv venv foo@bar:~$ source ./venv/bin/activate # На MacOS и Linux foo@bar:~$ venv\Scripts\activate # На Windows
-
Установите библиотеки
foo@bar:~$ pip install -r requirements.txt foo@bar:~$ pip install -r requirements.dev.txt
-
Запускайте приложение!
foo@bar:~$ python -m calendar_backend
DB_DSN=postgresql://postgres@localhost:5432/postgres
– Данные для подключения к БДSTATIC_PATH
- путь до папки, в которой лежит статика. например, фотографии преподавателейREQUIRE_REVIEW_PHOTOS
- требовать ли ревью фотографии преподавателя(Если нет, то она сразу ппоявится в выдаче. Если да, то нужно будет подтверждение этой фотографии от пользователя с достаточными скоупами)REQUIRE_REVIEW_LECTURER_COMMENT
- требовать ли ревью комментариев к преподавателям(аналогичноREQUIRE_REVIEW_PHOTOS
)REQUIRE_REVIEW_EVENT_COMMENT
- требовать ли ревью комментариев к событиям(аналогичноREQUIRE_REVIEW_PHOTOS
)SUPPORTED_FILE_EXTENSIONS
- поддеедживаемые форматы файлов. На данный момент форматы конкретно изображений.- Остальные общие для всех АПИ параметры описаны тут
Учебная группа
. Имеет поля: номер, имя. В имя записывается название кафедры. В номер - номер группы, например 442мПреподаватель
. Имеет поля: Имя, Фамилия, Отчество, Описание. Описание можно загружать текстом в формате .mdФотография преподавателя
. Имеет отношение к конкретному преподавателю. Загрузить может любой пользователь и в зависимости от настроек приложения(см ENV-variables description) может выдаваться по запросу сразу или после аппрува этой фотографии от модератора. Ревью может быть как положительным, так и отрицательным.Комментарий к преподавателю
. Имеет отношение к конкретному преподавателю. Загрузить может любой пользователь и в зависимости от настроек приложения(см ENV-variables description) может выдаваться по запросу сразу или после аппрува этого комментария от модератора. Ревью может быть как положительным, так и отрицательным.Аудитория
. Имеет поля: номер и направление(север, юг), здание, урл до карты здания в Яндекс картах, например.Событие
. Одно событие может происходить сразу в нескольких аудиториям, сразу для нескольких групп, несколькими преподавателями. Событие имеет название, время начала и конца. Событие может быть не только парой, но и чем то иным. Например, пара - это событие. Мероприятие "Первый снег" - это событиеКомментарий к событию
. Имеет отношение к конкретному событию. Загрузить может любой пользователь и в зависимости от настроек приложения(см ENV-variables description) может выдаваться по запросу сразу или после аппрува этого комментария от модератора. Ревью может быть как положительным, так и отрицательным.
Дёрнуть ручку POST /group
. вы передаете
{
"name": "string", // название кафедры
"number": "string" // номер группы
}
Дёрнуть ручку POST /room
. вы передаете
{
"name": "string", // название аудитории
"building": "string", // название здания (например, Физический факультет)
"building_url": "string", // урл до карты здания
"direction": "North" // север/юг(если здание == Физический факультет)
}
Дёрнуть ручку POST /lecturer
. вы передаете
{
"first_name": "string", // имя
"middle_name": "string", // фамилия
"last_name": "string", // отчество
"description": "string" // описание в формате .md
}
Дёрнуть ручку POST /event
. вы передаете
{
"name": "string", // название
"room_id": [0], // айдишники аудиторий, в которых оно проходит
"group_id": [0], // айдишники групп, у которых оно проходит
"lecturer_id": [0], // айдишники преподавателей, которые его ведут
"start_ts": "2023-10-29T06:07:09.827Z", // время начала
"end_ts": "2023-10-29T06:07:09.827Z" // время конца
}
Дёрнуть ручку GET /lecturer/photo/review
Дёрнуть ручку POST /lecturer/photo/review/{id}
. вы передаете
{
"action": "Approved" // Подтвердить фотографии или ("Declined")
}
Дёрнуть ручку POST /lecturer/{lecturer_id}/comment/{id}/review
. вы передаете action в query-string. С комментариями к событиям аналогично
-
Основная информация по разработке наших приложений
-
Ссылка на страницу с информацией по разработке timetable-api