From 29b5c8fcae03550b83b9d44402af307a24646b15 Mon Sep 17 00:00:00 2001 From: qsethuk Date: Tue, 11 Nov 2025 09:48:57 +0300 Subject: [PATCH] Update README.md --- README.md | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/README.md b/README.md index e69de29..32889eb 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,119 @@ +# PKI Management (JavaFX) + +Современное настольное приложение на JavaFX для управления PKI-ресурсами с модульной архитектурой, настраиваемой навигацией и системой прав доступа. + +## Особенности + +- Компонентная навигация: + - `MenuItem` — визуальные блоки-оглавления + - `SubMenuItem` — кликабельные пункты подменю + - Управление видимостью пунктов (вкл/выкл), автоматическое скрытие пустых блоков +- Модульная архитектура: + - Пример модуля: `Test 1` + - Настройки с пользовательским и админским режимами +- Админский доступ: + - Диалог ввода пароля с автофокусом + - Переключение интерфейса настроек (User/Admin) +- Конфигурация: + - Хранится в скрытой папке пользователя `pki_management` (Windows: `C:\\Users\\{user}\\pki_management\\config.properties`) + - Доступ через `ConfigManager` (singleton) + +## Стек + +- Java 21, JavaFX 21 (Controls + FXML) +- Maven + +## Структура проекта + +``` +src/main/java/com/dsol/pki_management/ +├─ app/ # Запуск приложения +│ ├─ PKIApplication.java +│ └─ Launcher.java +├─ controllers/ # Контроллеры экранов +│ ├─ MainController.java +│ └─ SettingsController.java +├─ components/ # Переиспользуемые UI-компоненты +│ ├─ MenuItem.java +│ └─ SubMenuItem.java +├─ modules/ # Функциональные модули +│ └─ test1/ +│ └─ Test1Controller.java +└─ config/ # Конфигурация приложения + ├─ ConfigManager.java + └─ AppConfig.java + +src/main/resources/com/dsol/pki_management/ +├─ views/ +│ └─ main.fxml +├─ components/ +│ ├─ menu-item.fxml +│ └─ sub-menu-item.fxml +└─ modules/ + ├─ settings/ + │ └─ settings-view.fxml + └─ test1/ + └─ test1-view.fxml +``` + +## Быстрый старт + +1) Установите JDK 21 и Maven + +2) Сборка и запуск + +```bash +# Windows / Linux / macOS +mvn clean javafx:run +``` + +Либо через главный класс: + +```bash +mvn -q -Dexec.mainClass="com.dsol.pki_management.app.Launcher" exec:java +``` + +## Конфигурация + +- Путь: `C:\\Users\\{user}\\pki_management\\config.properties` (Windows) +- Создается автоматически при первом запуске +- Пример ключей: + - `admin.password` — пароль администратора (по умолчанию `admin123`) + - `app.language`, `app.theme` — пользовательские настройки + +Использование в коде: + +```java +var config = ConfigManager.getInstance(); +String pwd = config.getProperty(AppConfig.KEY_ADMIN_PASSWORD, AppConfig.DEFAULT_ADMIN_PASSWORD); +config.setProperty(AppConfig.KEY_THEME, "light"); +config.saveConfig(); +``` + +## UX-функции + +- Гамбургер-меню слева +- Отображение навигации как дерева +- Зачеркивание скрытых SubMenu пунктов +- Скрытие `MenuItem`, если все дочерние скрыты + +## Дорожная карта + +- Локализация интерфейса (i18n) +- Темы (light/dark) +- Новые модули (например, управление сертификатами, аудит) +- Экспорт/импорт настроек + +## Разработка + +```bash +# Сборка +mvn clean package + +# Запуск с логами +mvn -Dprism.verbose=true javafx:run +``` + +## Лицензия + +Проект распространяется на условиях лицензии Apache-2.0.