feat(flashcards): глобальный quick-add FAB + виджет «повтори карточку»

Backend:
- POST /api/flashcards/quick — добавить карточку из любой точки; колода по
  выбору или автоколода «Быстрые карточки» (создаётся при первом обращении)
- GET /api/flashcards/random — случайная карточка из всего пула пользователя

Frontend:
- /js/flashcard-fab.js — плавающая кнопка «запомнить» на всех страницах
  (учебник, лаборатория, симуляция…). Поповер: вопрос/ответ/колода, Ctrl+Enter.
  Гейт по фиче-флагу flashcards; исключены classroom/login/error/сама /flashcards.
  Загружается лениво из sidebar.js (на 45 страницах с шапкой).
- dashboard: виджет #w-flashcard в колонке прогресса — флип-карта (вопрос↔ответ),
  кнопка «Другая», счётчик пула, CTA при пустом пуле; слушает событие
  flashcard:added для авто-обновления.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-31 09:38:23 +03:00
parent d4ab7993c5
commit 1dcc4cbf6e
5 changed files with 388 additions and 0 deletions
+2
View File
@@ -5,6 +5,8 @@ const { authMiddleware } = require('../middleware/auth');
router.use(authMiddleware);
router.post ('/quick', fc.quickAdd);
router.get ('/random', fc.getRandom);
router.get ('/decks', fc.listDecks);
router.post ('/decks', fc.createDeck);
router.put ('/decks/:id', fc.updateDeck);