Бэкенд для приложения ITMO.Widgets
Сервер отвечает за то, чего нет в MyITMO: пользователей и друзей, приватность, очереди автозаписи на спорт, ссылки к предметам, отзывы о преподавателях, модерацию, веб-версию и push-уведомления. Все данные университета приложение получает напрямую через my-itmo-api. Контракт API описан в docs/contracts, его типы принадлежат серверу.
- Аутентификация по access-token ITMO.ID; refresh-token пользователя на сервер не попадает и не хранится.
- Явные заявки в друзья, публичные профили, поиск зарегистрированных по ИСУ.
- Независимая приватность расписания, спорта и списка друзей: все, друзья или никто.
- Очереди спорта: запись при освобождении места и на прогнозируемое занятие, с командами устройству через FCM. Доставка best-effort, без гарантии записи.
- Ссылки к предметам: личные или видимые потоку расписания либо всем, с премодерацией, голосами и жалобами.
- Отзывы о преподавателях: свои отзывы с премодерацией и проверкой по ИСУ, что преподаватель вёл занятия у автора, копии отзывов проекта Reviews, голоса, жалобы и ИИ-сводки отзывов через Gemini.
- Модерация: очередь жалоб и ревизий, решения, ограничения пользователей и роли модераторов.
- Веб-версия: вход по подтверждению с телефона, сессии и админка (сводка, пользователи и роли, модерация, отзывы и сводки, версия приложения, служебные учётные данные, журнал действий).
- Уведомления о заявках в друзья и их принятии.
- Регистрация устройств и метаданные версии приложения.
Kotlin, Spring Boot, Spring Security, Spring Data JPA, PostgreSQL 17, Flyway, Firebase Admin, Java 21. Ровно один экземпляр: планировщики не берут распределённую блокировку.
DOCKER_HOST=unix://$HOME/.colima/default/docker.sock TESTCONTAINERS_RYUK_DISABLED=true \
JAVA_HOME=$(/usr/libexec/java_home -v 21) ./gradlew buildТесты поднимают одноразовый PostgreSQL через Testcontainers. Локальный запуск и переменные окружения описаны в docs/development.md, работа с ветками, PR и миграциями — в CONTRIBUTING.md.
- docs/README.md — индекс: контракты API и правило совместимости, база данных и миграции, деплой.
- CONTRIBUTING.md — ветки, PR, релизы и миграции.
- CHANGELOG.md — история изменений.