Files
pki_management/README.md
2025-11-11 09:56:01 +03:00

4.6 KiB
Raw Permalink Blame History

PKI Management (JavaFX)

Java badge JavaFX badge Maven badge Windows badge Modular architecture badge

Современное настольное приложение на 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. Сборка и запуск
# 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.