Update README.md
This commit is contained in:
119
README.md
119
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.
|
||||||
|
|||||||
Reference in New Issue
Block a user