docs: add full project documentation

- Architecture: overview, 7 ADR, tech stack
- Principles: code-style, git-workflow, security
- API contracts: auth, profile, tests, admin endpoints
- Database schema: tables, relationships, indexes
- LLM strategy: prompts, fallback, validation, Qwen 2.5 14B
- Onboarding: setup, Docker, .env template
- Progress: roadmap, changelog
- Agents: context, backend instructions

Made-with: Cursor
This commit is contained in:
Anton
2026-03-04 12:07:17 +03:00
commit 99cd8ae727
21 changed files with 3763 additions and 0 deletions

126
onboarding/setup.md Normal file
View File

@@ -0,0 +1,126 @@
# Настройка окружения разработчика
## Требования
| Инструмент | Версия | Примечание |
|-----------|--------|------------|
| Node.js | >= 20 LTS | Через nvm (`nvm install 20`) |
| npm | >= 10 | Приходит с Node.js |
| Git | >= 2.40 | |
| Docker | latest | + Docker Compose |
| VS Code | latest | Рекомендован, настройки в репо |
## .nvmrc
В корне каждого code-репо лежит `.nvmrc`:
```
20
```
При входе в директорию: `nvm use`
## Docker Compose (локальное окружение)
Для разработки нужны PostgreSQL и Redis. Docker Compose файл лежит в `samreshu-backend`:
```yaml
# docker-compose.dev.yml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: samreshu
POSTGRES_PASSWORD: samreshu_dev
POSTGRES_DB: samreshu
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
pgdata:
```
Запуск:
```bash
docker compose -f docker-compose.dev.yml up -d
```
## Переменные окружения
Backend `.env` (шаблон):
```env
# Server
PORT=3000
HOST=0.0.0.0
NODE_ENV=development
# Database
DATABASE_URL=postgresql://samreshu:samreshu_dev@localhost:5432/samreshu
# Redis
REDIS_URL=redis://localhost:6379
# Auth
JWT_SECRET=dev-secret-change-in-production
JWT_ACCESS_TTL=15m
JWT_REFRESH_TTL=7d
# LLM
LLM_BASE_URL=http://localhost:11434/v1
LLM_MODEL=qwen2.5:14b
LLM_API_KEY=
LLM_TIMEOUT_MS=15000
LLM_MAX_RETRIES=1
LLM_TEMPERATURE=0.7
LLM_MAX_TOKENS=2048
# Email (dev — mailpit / mailtrap)
SMTP_HOST=localhost
SMTP_PORT=1025
SMTP_USER=
SMTP_PASS=
EMAIL_FROM=noreply@samreshu.dev
# Sentry (опционально для dev)
SENTRY_DSN=
```
`.env` файл **не коммитится**. В репо лежит `.env.example` с теми же ключами и примерами значений.
## Быстрый старт
```bash
# 1. Клонировать репозитории
git clone <backend-repo-url> samreshu-backend
git clone <frontend-repo-url> samreshu-frontend
# 2. Backend
cd samreshu-backend
nvm use
npm install
cp .env.example .env # заполнить значения
docker compose -f docker-compose.dev.yml up -d
npm run db:migrate # применить миграции
npm run dev # запустить сервер
# 3. Frontend (в отдельном терминале)
cd samreshu-frontend
nvm use
npm install
npm run dev # запустить Vite dev server
```
## VS Code
При открытии репо VS Code предложит установить рекомендуемые расширения (из `.vscode/extensions.json`). Настройки форматирования и линтинга подхватятся автоматически из `.vscode/settings.json`.
См. [code-style.md](../principles/code-style.md) для полного списка расширений и настроек.