From 56fee5cbdf3f9286ebb36f034b8815bdcd623a13 Mon Sep 17 00:00:00 2001 From: Alina Date: Tue, 17 Feb 2026 20:40:09 +0300 Subject: [PATCH] =?UTF-8?q?init:=20project=20docs=20=E2=80=94=20requiremen?= =?UTF-8?q?ts,=20architecture,=20deploy=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- ARCHITECTURE.md | 320 ++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 53 ++++++++ REQUIREMENTS.md | 67 ++++++++++ 3 files changed, 440 insertions(+) create mode 100644 ARCHITECTURE.md create mode 100644 CLAUDE.md create mode 100644 REQUIREMENTS.md diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 0000000..90c5553 --- /dev/null +++ b/ARCHITECTURE.md @@ -0,0 +1,320 @@ +# Архитектура Calculator + +## Дерево файлов + +``` +calculator/ +├── service.yaml # Конфиг для ci-templates (тип, домен, ресурсы) +├── .drone.yml # CI/CD пайплайн (копия base.drone.yml) +├── index.html +├── package.json +├── tsconfig.json +├── vite.config.ts +├── public/ +│ └── favicon.svg +└── src/ + ├── main.tsx # Точка входа, рендер + ├── App.tsx # Роутинг: /login → /calculator + ├── App.css # Глобальные стили (reset, body, центрирование) + │ + ├── context/ + │ └── AuthContext.tsx # React Context + Provider для псевдоавторизации + │ + ├── hooks/ + │ ├── useCalculator.ts # Стейт-машина калькулятора (вся логика) + │ └── useKeyboard.ts # Слушатель клавиатуры → маппинг на действия + │ + ├── utils/ + │ └── calculate.ts # Чистые функции вычислений + │ + ├── pages/ + │ ├── LoginPage.tsx # Страница входа + │ ├── LoginPage.module.css + │ ├── CalculatorPage.tsx # Страница калькулятора (шапка + калькулятор) + │ └── CalculatorPage.module.css + │ + └── components/ + ├── Calculator/ + │ ├── Calculator.tsx # Обёртка: Display + Keypad + │ └── Calculator.module.css + ├── Display/ + │ ├── Display.tsx # Выражение + результат + │ └── Display.module.css + ├── Keypad/ + │ ├── Keypad.tsx # Сетка кнопок + │ └── Keypad.module.css + └── Button/ + ├── Button.tsx # Кнопка калькулятора + └── Button.module.css +``` + +## Схема компонентов + +``` + + ← context/AuthContext.tsx + + /login → ← Форма логина + / → ← Редирект на /login если нет юзера + + ├── Header (логин + выход) + └── + ├── ← expression + result + └── ← сетка