- "Что это": официальная версия - "Информационная система управления процессом сдачи лабораторных и практических работ студентами". Идея состоит в том, чтобы дать возможность студентам организовывать рабочие пространства, в которых они могли бы хранить информацию о предметах, преподавателях, их требованиях и пр., а также, что самое важное, вести живые очереди для сдачи работ.
- "Для кого": целевая аудитория - студенты СФУ, т.к. на данный момент
приложение заточено под работу в связке с системой электронного обучения
СФУ (еКурсы). На
REST APIеКурсов завязана авторизация пользователей, получение студенческих групп, получение доступных предметов и заданий по ним.
FastAPI=^0.115.12- веб-фреймворкSQLAlchemy=^2.0.40- ORM-библиотекаPydantic=^2.11.2- библиотека валидации данныхUvicorn=^0.34.0- ASGI веб-сервер (dev)Gunicorn=^23.0.0- WSGI веб-сервер (prod). Для асинхронности запускается сuvicorn workers.
В качестве СУБД используется PostgreSQL.
Кроме вышеописанных библиотек также применялись httpx (асинхронные запросы к
REST API еКурсов), alembic (миграции базы данных), websockets (говорит
сам за себя; для работы с живыми очередями), asyncpg (асинхронный движок для
подключения к PostgreSQL), jinja2 (шаблонизатор).
Приложение развернуто на удаленном сервере. Достучаться до него можно
тут. Там же находится полностью задокументированный
Swagger UI (ну, прям полностью, даже все коды ответов для каждого эндпоинта).
Если кому-то придет в голову развернуть это, то:
-
Клонировать репозиторий на целевую машину.
-
Убедиться, что установлен
docker engine. -
Перекреститься.
-
В корне проекта создать
.envфайл следующего содержания:POSTGRES_USER=... POSTGRES_PASSWORD=... POSTGRES_DB=...
-
В папке
./appсоздать второй.envследующего содержания:APP_CONFIG__DB__URL=postgresql+asyncpg://<POSTGRES_USER>:<POSTGRES_PASSWORD>@localhost:5432/<POSTGRES_DB>Вместо значений в треугольных скобках нужно указать те же значения, что лежат в первом
.env.Да, можно было бы обойтись одним файлом окружения.
-
В файле
./app/templates/ws_test_client.htmlв строках71:72заменить протоколы наhttpsиwss, если привязано доменное имя и полученSSL-сертификат (ну, и сами адреса заменить на доменное имя). -
Запустить
sudo bash up-linux.shи ждать чуда. -
После успешного запуска можете проверить адрес в браузере. В корне проекта появится
app.logфайл с логами. -
Победа, поздравляю.
Caution
Важный момент. VPS должен быть расположен в РФ (насчет Казахстана, РБ и прочих дружественных государств не уверен). В противном случае, еКурсы откажут в обслуживании и получится кирпич 🧱
В данной версии приложения прокси в коде не использовались.

