Skip to content

Repository files navigation

OnlyCards Server

Перед началом работы

Для запуска потребуется Node.js и Docker. Скопируй .env.example в .env.

docker compose up -d

Техническая документация

Авторизация описана в файле /docs/auth.md.

Суть приложения

Приложение представляет собой API-сервер на Node.js с MariaDB и предоставляет функциональность авторизации и CRUD.

Сущности

Группа

Преподаватель может создать группу: ID, название и описание. Название и описание группы валидируются разумным образом. Описание может быть пустым. Каждая группа имеет владельца-преподавателя. Преподаватель может изменить название или описание группы.

Преподаватель может пригласить в свою группу пользователя (по его ID). Преподаватель может отозвать отправленное приглашение.

Пользователь может принять или отклонить приглашение в группу. Пользователь может покинуть группу, в которой числится.

Преподаватель может отвязать пользователя от своей группы. Преподаватель может удалить свою группу.

Колода

Преподаватель может создать колоду:

  • ID;
  • Название;
  • Описание (может быть пустым);
  • Язык лицевой стороны;
  • Язык оборотной стороны;
  • Озвучка лицевой стороны (да/нет);
  • Озвучка оборотной стороны (да/нет).

Поддерживаются языки: ru, en, es, de, fr, it, pt. Постоянно будут добавляться новые языки.

Каждая колода имеет владельца-преподавателя. Преподаватель может изменить название или описание колоды. Преподаватель может выдавать/забирать доступ своим группам к своим колодам.

Преподаватель может удалить свою колоду. В этом случае выданные группам доступы к этой колоде снимаются.

Карта

Преподаватель может создать карту в колоде:

  • ID;
  • ID колоды;
  • Предварительный текст (может быть пустым);
  • Основной текст;
  • Заключительный текст (может быть пустым);
  • Размер шрифта.

Тексты являются массивами строка. Основной текст от одной до трёх строк. Остальные от нуля до двух.

Преподаватель может отредактировать свою карту: сохранить новое содержимое под прежним ID.

Преподаватель может удалить свою карту.

Получение данных

Клиентское приложение

Клиентское приложение предоставляет функциональность ученика.

Преподаватель может войти в клиентское приложение на правах ученика, состоящего во всех группах, владельцем которых он является.

При входе в клиентское приложение пользователь получает все данные в формате JSON одним запросом:

  • Свой ID;
  • Своё имя;
  • Приглашения в группы;
  • Группы в которых он состоит;
  • Вложенные в них колоды;
  • Вложенные в них карты.

Или null, если запрос не прошёл авторизацию. Это является сигналом клиентскому приложению, что необходимо войти.

Панель администратора

Панель администратора предоставляет функциональность преподавателя.

При входе в панель администратора пользователь получает одним запросом:

  • Свой ID;
  • Своё имя;
  • Список поддерживаемых языков;
  • Свои группы (ID, название, количество учеников и приглашений).

Или null, если запрос не прошёл авторизацию. Это является сигналом панели администратора, что необходимо войти.

Когда преподаватель переходит в конкретную группу, запрашивается подробная информация о ней по ID:

  • ID группы (дубликат, но может быть полезен);
  • Название;
  • Список учеников в группе (ID, имя);
  • Список отправленных приглашений;
  • Список колод, предоставленных группе (ID, название, количество карт).

Преподаватель может перейти в интерфейс управления колодами. Запрашивается список всех колод преподавателя, в каждой:

  • ID колоды;
  • Название;
  • Количество карт;
  • Количество групп, которым выдан доступ.

Когда преподаватель переходит в конкретную колоду, запрашивается подробная информация о ней по ID:

  • ID колоды (дубликат, но может быть полезен);
  • Название;
  • Список карт со всеми данными каждой карты;
  • Список групп, которым выдан доступ (ID, название).

About

OnlyCards Backend

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages