init: project docs — requirements, architecture, deploy config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
53
CLAUDE.md
Normal file
53
CLAUDE.md
Normal file
@ -0,0 +1,53 @@
|
||||
# Calculator
|
||||
|
||||
Frontend-калькулятор с псевдоавторизацией.
|
||||
|
||||
## Стек
|
||||
|
||||
- **Framework:** React 18 + TypeScript
|
||||
- **UI:** Ant Design 5
|
||||
- **Сборка:** Vite
|
||||
- **Стили:** CSS Modules
|
||||
- **Роутинг:** React Router 6
|
||||
- **Домен:** test-calculator.vigdorov.ru
|
||||
|
||||
## Деплой
|
||||
|
||||
- **Namespace:** test-calculator (отдельный)
|
||||
- **CI/CD:** Drone CI через ci-templates (service.yaml + .drone.yml)
|
||||
- **Тип:** web-frontend (SPA → nginx)
|
||||
- **Registry:** registry.vigdorov.ru/library/test-calculator
|
||||
- **Trigger:** push в master
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
calculator/
|
||||
service.yaml # Конфиг ci-templates
|
||||
.drone.yml # CI/CD пайплайн
|
||||
src/
|
||||
components/ # UI-компоненты (Calculator, Display, Keypad, LoginForm)
|
||||
pages/ # Страницы (LoginPage, CalculatorPage)
|
||||
context/ # AuthContext для псевдоавторизации
|
||||
hooks/ # Кастомные хуки (useCalculator, useKeyboard)
|
||||
utils/ # Логика вычислений
|
||||
App.tsx
|
||||
main.tsx
|
||||
public/
|
||||
index.html
|
||||
```
|
||||
|
||||
## Команды
|
||||
|
||||
```bash
|
||||
npm run dev # Запуск dev-сервера
|
||||
npm run build # Сборка для продакшена
|
||||
npm run preview # Превью билда
|
||||
npm run lint # Линтинг
|
||||
```
|
||||
|
||||
## Архитектурные решения
|
||||
|
||||
- **Псевдоавторизация:** Логин сохраняется в localStorage, любой логин принимается. Нет пароля.
|
||||
- **Клавиатура:** Калькулятор полностью управляется с клавиатуры (цифры, операторы, Enter=равно, Escape=сброс, Backspace=удаление).
|
||||
- **Адаптивность:** Минимальная ширина экрана 320px. Интерфейс центрирован.
|
||||
Reference in New Issue
Block a user