Files

118 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Compton Platform
Если вы открыли этот файл — поздравляем: перед вами monorepo с React, FastAPI и амбициями выйти в production. Амбиции живут в [docs/release.md](docs/release.md), код — в `apps/`, секреты — **не** в git.
Платформа Compton Organic Tech: лендинг, auth, профиль, CMS, админка в стиле WESP/zootech. ТЗ: [docs/TZ.md](docs/TZ.md).
## Быстрый старт
```bash
git clone https://git.groupkomton.ru/Matvey/site.git && cd site
python apps/api/scripts/bootstrap_install.py # один раз, до первого up (секреты БД)
bash scripts/materialize-wesp-static.sh # WESP UI → public/static (авто при pnpm dev)
docker compose --profile docker-web up -d --build
curl http://localhost:8000/api/v1/health # Windows: curl.exe
```
> **После `git clone` обязательно:** `bootstrap_install.py` **до** `docker compose up` — иначе Postgres не примет пароль из `install.env`.
> WESP UI лежит в git (`apps/web/public/wesp/`); `public/static/` генерируется скриптом (не в git).
| URL | Что там |
|-----|---------|
| http://localhost:5173 | Лендинг `/` + SPA (`/login`, `/admin`, …) |
| http://localhost:8000/api/v1/health | API жив? |
| http://localhost:8000/api/v1/docs | OpenAPI (только dev) |
**Логин для пробы:** `admin@compton.example` / `Admin1234``/admin`.
> Bootstrap **до** первого `docker compose up`. Иначе Postgres скажет «password authentication failed» — см. [docs/deploy.md § восстановление](docs/deploy.md#восстановление-секретов).
**Не делайте:** Docker `web` и `pnpm --filter web dev` одновременно — оба хотят порт **5173**.
## Демо-аккаунты (dev)
Подробнее: [docs/deploy.md § стандартные логины](docs/deploy.md#стандартные-логины-dev).
| Email | Пароль | Env | Роль | Superuser |
|-------|--------|-----|------|-----------|
| admin@compton.example | Admin1234 | `ADMIN_INITIAL_PASSWORD` | admin | да — Security, Diagnostics, secrets |
| ops@compton.example | OpsAdmin1234 | `DEMO_OPS_PASSWORD` | admin | нет — Users, Content, Activity |
| user@compton.example | User1234 | `DEMO_USER_PASSWORD` | user | — |
CMS после seed: `/pages/about`, `/pages/privacy`, `/pages/terms`.
В production/staging demo-users **выключены** (`SEED_DEMO_USERS=false`).
## Тесты
```bash
pnpm --filter web test:ci # frontend, cov ≥ 85%
cd apps/api && python -m pytest --cov=app --cov-fail-under=90
pnpm --filter web e2e # Playwright, API :8001
```
## Документация
Вся нормальная дока — в **`docs/`**, на русском, без водянистого README на 500 строк:
| Файл | О чём |
|------|-------|
| [docs/README.md](docs/README.md) | Оглавление |
| [docs/project.md](docs/project.md) | Структура, архитектура, API, маршруты |
| [docs/security.md](docs/security.md) | Auth, JWT revoke, секреты, чеклист prod |
| [docs/deploy.md](docs/deploy.md) | Dev/staging/prod, бэкапы, troubleshooting |
| [docs/release.md](docs/release.md) | QA gates, k6, ZAP, go-live |
| [docs/TZ.md](docs/TZ.md) | Техническое задание |
## Работа с Git
**Репозиторий:** https://git.groupkomton.ru/Matvey/site.git
**Ветка:** `main` (одна ветка, без сюрпризов)
```bash
git pull origin main # перед работой — всегда
git status && git diff # перед коммитом — тоже всегда
git add .
git commit -m "Сделал то-то на русском"
git push origin main
```
**Коммиты — только на русском.** Плохо: `fix`, `WIP`, `asdf`.
**Не коммитить:** `.env`, `install.env`, `node_modules/`, логи, кэши.
**Не делать** `git push --force` на `main` без согласования.
| Команда | Зачем |
|---------|-------|
| `git log --oneline -10` | что было |
| `git checkout -- файл` | откатить файл |
| `git stash` / `git stash pop` | спрятать / вернуть правки |
## План по ТЗ (§16)
| Фаза | Задачи | Статус |
|------|--------|--------|
| **0 — Подготовка** | Monorepo, Docker Compose, UI kit, CI/coverage gates, Playwright smoke | Выполнено |
| **1 — MVP** | Landing, Auth+SMTP, Profile, Content, Admin, staging + полный регресс | В процессе |
| **2 — v1.0** | Celery/notifications, Catalog+Orders, Analytics, k6 + monitoring | Когда начнём? |
| **3 — Scale** | Read replica PG, Celery workers, CDN, horizontal API | Когда начнём? |
### Фаза 1 — детализация
| # | Задача | Модули | Статус |
|---|--------|--------|--------|
| 1.1 | Landing (перенос заглушки) | landing | Выполнено |
| 1.2 | Auth + SMTP | auth | Выполнено |
| 1.2b | Security baseline | core, auth | В процессе |
| 1.3 | Profile CRUD + avatar | profile | Выполнено |
| 1.4 | Content pages | content | Выполнено |
| 1.5 | Admin panel | admin | Выполнено |
| 1.6 | Staging deploy + полный регресс (§15.7) | — | В процессе |
Критерии приёмки MVP — §17.1 ТЗ (k6 50 CCU, Lighthouse ≥85, E2E 10/10, coverage gates).
---
*Дальше — [docs/](docs/README.md). Там схемы, таблицы и вещи, которые не помещаются в README без страданий.*