1. Загальний опис
IDAP — це самодостатня PHP/MySQL-платформа для організації кваліфікаційного тестування у закладах професійної освіти. Розгортається на типовому LAMP/LEMP-хостингу за 5 кроків майстра встановлення.
2. Технічні вимоги до сервера
Майстер встановлення автоматично перевіряє вимоги на першому кроці та показує, що потрібно виправити.
| Компонент | Вимога |
|---|---|
| PHP | 7.4 або новіше, рекомендовано 8.0+ |
| MySQL / MariaDB | MySQL 5.7+ або MariaDB 10.3+ |
| Розширення PHP | mysqli mbstring session fileinfo |
| Веб-сервер | Apache 2.4+ / Nginx 1.18+ з PHP-FPM |
| Дисковий простір | Мінімум 50 МБ без урахування зображень питань |
| Кодування БД |
utf8mb4_unicode_ci
|
| Права запису |
Коренева папка та
uploads/
, рекомендовано
chmod 755
|
3. Підготовка до встановлення
3.1. Створення бази даних
Через cPanel, ISPmanager, DirectAdmin або phpMyAdmin створіть нову порожню базу даних з кодуванням
utf8mb4_unicode_ci
.
CREATE DATABASE testing_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ✓ Збережіть хост БД, назву бази, логін користувача БД і пароль.
- ✓ Надайте користувачу повні права на створену базу.
3.2. Завантаження файлів на сервер
Розпакуйте архів та завантажте весь вміст у кореневу папку сайту:
public_html
,
www
,
htdocs
або підпапку домену.
your-site/ ├── install.php ├── index.php ├── login.php ├── submit.php ├── results.php ├── lang.php ├── lang/ │ ├── uk.php │ └── en.php ├── install/ │ ├── schema.sql │ └── seed_settings.sql ├── admin/ ├── assets/bootstrap/ └── uploads/
uploads/
повинна мати права 755, інакше система не зможе додавати зображення до питань.
4. Покрокове встановлення
Відкрийте у браузері адресу
https://ваш-домен.ua/install.php
. Майстер проведе через 5 кроків.
Перевірка системи
Перевіряються PHP, розширення, права запису та доступність
uploads/
.
Параметри БД
Введіть host, port, назву бази, користувача і пароль. Натисніть «Перевірити з'єднання».
Створення таблиць
Інсталятор створює таблиці системи. Використовується
CREATE TABLE IF NOT EXISTS
.
Налаштування системи
Створіть адміністратора, виберіть мову, вкажіть професію, час тесту, поріг і максимальний бал.
Завершення
Створюються
config.php
,
install.lock
та службові записи для першого входу.
Таблиці, які створює інсталятор
| Таблиця | Призначення |
|---|---|
labor_functions
|
Трудові функції з професійного стандарту |
questions
|
Питання тесту з типом, складністю та балами |
answers
|
Варіанти відповідей до питань |
variants
|
Варіанти тестів / білети |
variant_questions
|
Зв'язок «варіант ↔ питання» |
users
|
Учасники тестування |
results
|
Відповіді учасників та бали |
settings
|
Загальні налаштування системи |
admin_users
|
Адміністратори системи |
5. Дії одразу після встановлення
install.php
та папку
install/
. Файл
install.lock
не видаляйте.
| Файл / папка | Рекомендовані права | Чому |
|---|---|---|
config.php
|
644 | Містить пароль бази даних |
uploads/
|
755 | Запис зображень |
install.lock
|
644 | Не видаляти |
admin/
|
644 | Тільки читання для файлів |
6. Адміністрування
Розділ додано на майбутнє: тут можна описувати роботу адміністратора та вставляти скріншоти адмінпанелі.
Перший вхід в адмінпанель
Відкрийте адресу
https://ваш-домен.ua/admin/
та введіть логін і пароль, створені під час встановлення.
Блок зображень для WIKI
Замініть файли у папці
admin-screens/
або змініть шляхи до зображень у HTML. Клік по картці відкриває зображення у модальному перегляді.
7. Базовий цикл роботи з системою
Внесення трудових функцій
Адмінпанель → «Трудові функції» → «Додати». Вказується код і повна назва.
Додавання питань
Адмінпанель → «Питання» → «Додати питання». Вибір типу, функції, складності й балів.
Створення варіантів
Ручне створення або автогенерація за кількістю питань, типом і складністю.
Реєстрація учасників
Для кожного учасника задається ПІБ, логін, пароль і призначений варіант.
Проведення тестування
Учасник входить на головній сторінці, проходить тест, час відлічується автоматично.
Експорт результатів
Адмінпанель → «Результати»: перегляд статусу та вивантаження XLSX.
8. Безпека системи
-
✓
bcrypt:
усі паролі хешуються через
password_hashзPASSWORD_DEFAULT. - ✓ SQL-захист: запити виконуються через prepared statements.
-
✓
XSS-захист:
дані у HTML проходять через
htmlspecialchars. - ✓ Сесії: тайм-аут адміністратора після 4 годин неактивності.
- ✓ Брутфорс: затримка 1 секунда при невдалому вході.
/admin/
за IP.
9. Перевстановлення та усунення несправностей
Як перевстановити
Видаліть
install.lock
і
config.php
, завантажте
install.php
назад та відкрийте його у браузері. Дані в БД не очищуються автоматично.
| Симптом | Що зробити |
|---|---|
| «DB connection failed» |
Перевірте логін, пароль, хост у
config.php
і роботу MySQL.
|
| Білий екран |
Увімкніть
display_errors
або перевірте логи сервера.
|
| «Не вдалось зберегти config.php» | Тимчасово встановіть права 755 на кореневу папку та повторіть установку. |
| Не завантажуються зображення |
Перевірте права
uploads/
: 755 + writable для PHP.
|
| Кракозябри замість українських літер |
Перевірте кодування БД:
utf8mb4_unicode_ci
.
|
| Забули пароль адміна |
Через phpMyAdmin виконайте
DELETE FROM admin_users;
та видаліть
admin_config.php
.
|
10. Додавання нової мови
-
Скопіюйте
lang/uk.phpпід новою назвою, наприкладlang/de.php. - Перекладіть значення у масиві. Ключі не змінюйте.
- Збережіть файл у UTF-8 без BOM.
- Перейдіть в адмінпанель → Налаштування → Мова.
https://ваш-домен.ua/?lang=de
11. Контрольний список перед запуском
-
✓
Видалено
install.phpз сервера. -
✓
Видалено папку
install/. - ✓ Встановлено SSL-сертифікат HTTPS.
- ✓ Зроблено перший бекап БД.
- ✓ Створено резервного адміністратора.
- ✓ Додано трудові функції згідно професійного стандарту.
- ✓ Додано базовий пул питань, рекомендовано 100+.
- ✓ Створено та перевірено перший варіант тесту.
- ✓ Проведено тестовий прохід під обліковим записом учасника.
- ✓ Перевірено експорт результатів у Excel.