- Auth: register без токенов до верификации (userId, message, verificationCode)
- Auth: login — 429 RATE_LIMIT_EXCEEDED при lockout, user с avatarUrl
- Auth: verify-email — { userId, code }, без Bearer
- Auth: reset-password — поле newPassword
- Profile: stats — byStack, totalTestsTaken, totalQuestions, correctAnswers, accuracy
- Tests: POST /tests возвращает полный список questions
- Tests: answer — полный snapshot отвеченного вопроса
- Tests: history — offset-пагинация (limit/offset), формат { tests, total }
- Admin: GET /admin/questions/pending, POST approve/reject, PATCH для редактирования
- DB: email_verification_codes, password_reset_tokens; обновлена question_cache_meta
- Security: CORS_ORIGINS из env, CSP/COEP отключены
- LLM: LLM_FALLBACK_MODEL, LLM_RETRY_DELAY_MS
- Onboarding: правило .env.example, JWT_SECRET >= 32 символов
samreshu-docs
Документация проекта samreshu — веб-приложение для тестирования знаний по веб-технологиям с LLM-генерацией вопросов.
Навигация
Архитектура
- Общая архитектура — стек, схема сервисов, принципы
- ADR: Polyrepo
- ADR: Fastify
- ADR: Drizzle ORM
- ADR: PostgreSQL
- ADR: LLM-абстракция
- ADR: VPS + Docker deploy
- ADR: Без shared-types репо
Принципы
- Code style — соглашения по коду, конфиги линтеров
- Git workflow — ветки, коммиты, PR
- Безопасность —
TODOrate limiting, CORS, auth security
API
- Контракты —
TODOREST endpoints, request/response форматы
База данных
- Схема — таблицы, связи, пояснения
LLM
- Стратегия —
TODOпровайдеры, fallback, банк вопросов, prompt engineering
Прогресс
Онбординг
- Настройка окружения — как поднять проект локально
AI-агенты
- Контекст для агентов — общее описание проекта для AI-ассистентов
- Инструкции для backend — структура, порядок разработки, паттерны
Репозитории
| Репо | Описание |
|---|---|
samreshu-backend |
Fastify + TypeScript + Drizzle ORM |
samreshu-frontend |
React + TypeScript + Vite |
samreshu-docs |
Документация, ADR, прогресс |
Description
Languages
Markdown
100%