Таск-менеджер
Реалтайм-канбан для небольших команд: доски, роли, обновления в реальном времени по WebSockets.
Что делает
Канбан-доска для небольших команд: колонки, карточки, перетаскивание, роли на уровне доски, чтобы не каждый мог переименовать колонку или удалить карточку. Изменения одного участника — перенос карточки, новый комментарий — появляются на экранах остальных без перезагрузки страницы, в этом и есть смысл общей доски.
Как устроен
React на фронтенде, Node.js на бэкенде, MongoDB хранит доски, карточки и их порядок. Socket.io передаёт живые обновления: сервер рассылает изменение при каждой мутации, а подключённые клиенты обновляют локальное состояние вместо повторной загрузки доски. Порядок карточек хранится как сортируемая позиция, а не индекс в массиве, поэтому перестановка одной карточки не требует пересчёта позиций всех остальных. Роли проверяются на сервере при каждой мутации, а не только скрываются на клиенте — клиенту нельзя доверять соблюдение собственных прав доступа.