1.9 KiB
1.9 KiB
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
Команды
npm run dev # Запуск dev-сервера
npm run build # Сборка для продакшена
npm run preview # Превью билда
npm run lint # Линтинг
Архитектурные решения
- Псевдоавторизация: Логин сохраняется в localStorage, любой логин принимается. Нет пароля.
- Клавиатура: Калькулятор полностью управляется с клавиатуры (цифры, операторы, Enter=равно, Escape=сброс, Backspace=удаление).
- Адаптивность: Минимальная ширина экрана 320px. Интерфейс центрирован.