Личный кабинет - это платформа управления проектной работой студентов и единое окно в онлайн-сервисы МИЭМ НИУ ВШЭ.
Поддержка всех этапов жизненного цикла проекта: подачи заявки, трекинг задач, мониторинг показателей, контроль отчетности. Видеоконференции и чат в подарок.
Адаптер кабинета создан для получения, обработки и хранения информации о проектах МИЭМ.
Для начала работы необходимо получить сервисный API токен кабинета МИЭМ. Его может получить каждый авторизованный пользователь кабинета, обратившись к разработчикам кабинета.
Для более детальной инструкции по работе с адаптером проследуйте по ссылке.
| Метод | Путь | Описание |
|---|---|---|
| GET | /trello/token/refresh |
Генерация нового токена |
| GET | /api/students |
Получение всех студентов |
| GET | /public-api/projects?statusIds[]=1&statusIds[]=2 |
Получение количества всех активных проектов |
| GET | /public-api/projects?limit={get_project_count(token)}&?statusIds[]=1&statusIds[]=2 |
Получение информации о всех активных проектах |
| GET | /public-api/project/header/{projectId} |
Получение департамента проекта |
| GET | /api/project/students/{projectId} |
Получение информации об участниках проекта |
| GET | /api/statistics/trello/hours/{projectId}f'?studyYearId={studyYearId} или '/api/statistics/hours?projectId={projectId}&studyYearId={studyYearId} |
Получение информации о часах в проекте |
| GET | /api/feedback/{projectId}?studyYearId={str(year)} |
Получение информации об отчетности в циклах |
[
{
"project_id": "project_id",
"name": "project_name",
"head_id": "head_id",
"direction_head_id": "direction_head_id",
"link": "link_to_project",
"department": "department_name",
"students_ids": [
"student_id",
...
]
}
]
[
{
"project_id": "project_id",
"cycles": [
{
"number": "project_number",
"starts_at": "datetime ISO format",
"ends_at": "datetime ISO format",
"common_tasks": {
"number_of_cycle" : "count_of_hours_per_cycle",
...
},
"student_hours": [
{
"user": "student_id",
"hours": {
'number_of_cycle': "count_of_hours_per_cycle",
...
}
}
]
}
...
]
}
]
[
{
"project_id": "project_id",
"name": "project_name",
"cycles": [
{
"number": "project_number",
"credited": "True/False",
"starts_at": "datetime ISO format",
"ends_at": "datetime ISO format",
"head_comments": [
{
"person": "head_id",
"about": "student_id",
"to": "student_id",
"text": "comment_text"
},
...
],
"students_comments": [
{
"person": "student_id",
"about": "head_id",
"to": "head_id",
"text": "comment_text"
},
...
]
},
...
]
}
]
Процесс создания таблицы интегрирован в адаптер Cabinet MIEM.
adapter \
cabinet \
api.py - модуль для работы с API Cabinet
responses.py - модуль для создания pydantic моделей
adapter_script.py - модуль обрабатывающий информацию о проектах
config.py - модуль для работы с конфигурацией программы
database.py - модуль для обращения к модулям пакета footprint_mongoengine
table.py - модуль для создания таблицы
utils.py - дополнительные функции и константы
.dockerignore
.env.example - структура .env файла
.gitignore
Dockerfile - описание docker контейнера
main.py - основной скрипт программы
requirements.txt - список зависимостей программы
README.md - описание
table.json - конфигурационные данные для таблицы
get_projects - получает все активные проекты из кабинета;get_updated_projects - обновляет информацию по собранным ранее проектам;save_projects - сохраняет проекты в базу данных;update_all_edu_pr - обновляет те листы таблицы о проектной деятельности, которые посвящены образовательным программам;update_stat_program - обновляет лист "Стат. ОП.", показывающий распределение студентов в проектах относительно каждой ОП и курса;update_depart_stat - обновляет лист "Стат. Деп.", показывающий кол-во проектов в каждом департаменте и их распределение по ОП;update_head_stat - обновляет лист "Стат. Рук.", показывающий активные проекты каждого руководителя.Для того чтобы установить адаптер кабинета, Вам необходимо клонировать данный репозиторий, используя данную команду:
git clone https://git.miem.hse.ru/394/adapters/cabinet.git
Для корректной работы Вам необходимо установить все зависимости, указанные в requirements.txt, используя команду:
pip install --extra-index-url https://footprint.auditory.ru/pypi/simple -r requirements.txt
Если вы используете docker, в первую очередь Вам необходимо собрать образ, используя команду:
docker build -t cabinet .
Для того чтобы запустить скрипт, Вам необходимо создать необходимые переменные окружения.
После Вы можете запустить контейнер, используя команду:
docker run --rm --env-file .env cabinet