Проект: Trello-доска
Капстоун курса: канбан с drag-and-drop карточек, realtime-синхронизацией и деплоем. Здесь сходятся React (17), стили (4–6), БД (22), WebSocket (37) и деплой (20, 48).
Колонки, карточки и порядок
// Таблица cards: id, title, column_id, position
// Перенос при дропе — один запрос на сервер:
await fetch("/api/cards/move", {
method: "POST",
body: JSON.stringify({ id: "c7", column: "done", pos: 0 })
});
Realtime: все видят движение
// WebSocket-газетчик (урок 37): после сохранения
// рассылаем событие остальным клиентам
ws.send(JSON.stringify({
type: "card.moved", id: "c7", column: "done", pos: 0
}));
💡
Делаем optimistic update: карточка двигается мгновенно в UI, реальный запрос летит параллельно; при ошибке — откат. Именно так ощущается «живая» доска, а не «консоль со спиннером».
ℹ️
Это то, что интервьюер хочет видеть в портфолио: не «сделал to-do», а «реактивное приложение с БД, realtime и деплоем». Добавьте скрин и репо (урок 11) — и у вас есть о чём рассказывать STAR-ответом (урок 84).
💡
Курс пройден: 90 уроков, от первой HTML-страницы до подписок, WebSocket и realtime-досок. Портфолио готово — осталось собрать оффер. Вы справились!