Update README.md

This commit is contained in:
2025-11-11 09:48:57 +03:00
parent b1e582530d
commit 29b5c8fcae

119
README.md
View File

@@ -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.