Skip to content

About

Бэкенд для приложения ITMO.Widgets

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

ITMO.Widgets Backend

Бэкенд для приложения 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 — история изменений.

About

Бэкенд для приложения ITMO.Widgets

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages