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
🚀 Быстрый старт
- Установите JDK 21 и Maven
- Сборка и запуск
# Windows / Linux / macOS
mvn clean javafx:run
Либо через главный класс:
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— пользовательские настройки
Использование в коде:
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)
- Экспорт/импорт настроек
👩💻 Разработка
# Сборка
mvn clean package
# Запуск с логами
mvn -Dprism.verbose=true javafx:run
📄 Лицензия
Проект распространяется на условиях лицензии Apache-2.0.
Description
Languages
Java
100%