вівторок, 17 березня 2020 р.

Розробка адмінки для системи. Інтерфейс користувача

Всім привіт, продовжую обдумувати та розробляти універсальну систему, і сьогодні хочу поділитись деякими думками на рахунок створення адмінки.
Отже, саме перше: за що повинна відповідати адмінка? Визначу по пунктах:
  • робота з БД (настройки підключення, резервне копіювання, відновлення з резервної копії та інші функції адміністрування)
  • робота з користувачами (призначення прав, ролей, груп)
  • робота з модулями системи (призначення прав, створення потрібних таблиць, прописування залежностей, керування оновленнями)
Це будуть основні задачі, розбиті на розділи. Враховуючи специфіку цих задач (кожну з них детально я буду розглядати в процесі реалізації необхідного функціоналу), звичайному користувачу доступ не бажаний - можна натворити багато чого не лише небезпечного, а й пошкодити саму БД. На стороні звичайного користувача достатньо буде лише роботу в автоматичному режимі з локальним фрагментом БД, яка буде синхронізувати дані з сервером (і задавати налаштування підключення до центральної БД, з якою буде відбуватись синхронізація). До речі, щоб на клієнтських машинах не встановлювати повністю сервер Firebird (або використовувати його Embedded версію) я вирішив використовувати БД SQLite3 - легку однокористувацьку БД, для роботи з якою достатньо лише одного файлу на відміну від Firebird. Звісно, є певні відмінності при роботі з цими БД, але я маю досвід використання їх обох (на SQLite3 працює моя програма тарифікації для медичних закладів, яка використовувалась понад десятком закладів по всій Україні).

Рис. 1.1. Інтерфейс адмінки після запуску
Рис. 1.2. Інтерфейс адмінки після підключення БД
Інтерфейс адмінки буде досить простий. Фактично, це вікно без заголовку, в якому розміщено декілька  кнопок з іконками, по натисненю на які й будуть викликатись потрібні діалоги налаштувань. Доки не активувати підключення до БД, кнопки керування користувачами та модулями системи будуть неактивні (Рис. 1.1.)!
Тепер розгляну кожен розділ більш детально. Самим першим пунктом йде робота з базою даних. Саме тут можна буде підключатись до БД на сервері, включати або відключати можливість ведення логів при роботі з БД, виконувати архівне копіювання та відновлення БД та виконувати усі необхідні операції адміністрування, включаючи виконання SQL-запитів як з файлів, так і введених вручну. Спробую спроектувати інтерфейс такого діалогу.
Мій варіант реалізації буде за допомогою вікна з кількома вкладками, на кожній з яких згруповані відповідні підзадачі. На першій вкладці будуть налаштування підключення до головної БД та БД логування (Рис. 2.1.).
Рис.2.1. Налаштування підключення до БД та логування
Після успішного підключення до головної БД розблоковуються кнопки головного вікна для режимів керування користувачами і модулями (Рис. 1.2.). При активації форми настройки завантажуються з файла, а при натисненні кнопки "ОК" - записуються в файл налаштувань. По кнопці "БД Інфо" буде виводитись вікно зі службовою інформацією про сервер БД та саму БД. В тому випадку, якщо в підключеній БД відсутні службові таблиці для роботи системи, буде виводитись відповідне повідомлення та стане доступною кнопка "Ініціалізація БД", по натисненні на яку такі таблиці будуть створюватись.
Код, який відповідає за все вище описане, досить рутинний, тому не буду детально на ньому зупинятись. Кому цікаво подивитись сирці, після завершення роботи над адмінкою викладу все на Гітхаб, про що повідомлю додатково.
На сьогодні буде все, а наступного разу спробую доробити виведення інформації про сервер та БД, а також початкову ініціалізацію БД.

P.S. Не маючи ніякої кращої ідеї, поки що система називається "OpenIS" (можливо, все-таки не система, а платформа?), а функціонал для медичних закладів, який ще в процесі проектування, має кодову назву "Гіппократ". Можливо, хтось запропонує кращі назви? Пишіть в коментарях!

Реставрація ну ду-у-уже староко комп'ютера. Чи можливе нове життя?

  Минулого року мені дістався дуже старий комп'ютер, якому понад 20 років. На відео я зробив перше включення і огляд нутрощів цього &quo...