CMS Electronic Journal CMS (v 3.0) Електронний журнал для навчальних закладів
«Електронний журнал» — це PHP-додаток з ролевою моделлю (student / teacher / admin), що зберігає:
групи та їх порядок відображення,
предмети, закріплені за групами й викладачами,
уроки (дати, теми),
оцінки по уроках,
користувачів (активація e-mail, відновлення паролю, логін-лог).
Інтерфейс поділений на загальні сторінки (логін/реєстрація/активація), зону «Журнали» (груповий/предметний/студентський перегляд) та адмінку (користувачі, вчителі, системні задачі, логи, дампи БД).
Функціональні модулі
1) Авторизація, реєстрація, безпека
Логін/логаут (сесії, хешування паролів).
E-mail активація акаунта (активаційний код).
Відновлення паролю (reset_token + дедлайн).
Обмеження доступу за ролями (admin/teacher/student).
Базовий CSRF у деяких форм-кроках (реєстрація/верифікація).
2) Управління користувачами (адмін)
Перелік/редагування/видалення користувачів.
Прив’язка студентів до груп.
Окрема вкладка для вчителів (створення, редагування, керування правами).
Ведення логів адмін-операцій у admin_logs (хто що зробив і коли).
3) Групи, предмети, уроки
Створення «журналів» для груп (фактично — контейнер для предметів і уроків).
Ручне сортування груп/журналів через order_position (збереження нового порядку).
Додавання предметів до груп і закріплення за викладачем.
Планування/створення уроків: дата + тема уроку.
4) Оцінювання
Внесення оцінок по конкретному уроку або по студенту.
Масове оновлення оцінок через AJAX-ендпойнт update_grades.php.
Перегляд оцінок:
по групі/предмету (вчитель/адмін),
персональний «кабінет студента» зі своїми оцінками (роль student).
5) Пошта
PHPMailer: надсилання активацій, службових листів (SMTP-налаштунки у config_mail.php).
Можливість повторного надсилання активаційного листа з адмінки.
6) Експорт/документи
Домашня інтеграція Dompdf — експорт потрібних звітів/журналів у PDF (підключено, готово до використання у відповідних контролерах).
7) Системні інструменти (адмін)
Резервні копії: створення дампів БД у /backups/.
«Секретне слово викладача» в settings — механіка самододавання або швидкої верифікації викладачем себе в системі.
Перегляд системних логів дій (admin_logs) як мінімальний аудит змін (створення/видалення журналів, зміна порядку, тощо).
Що ми додали/доробили (по суті змін і артефактів у файлах/БД)
Рольова модель і доступи, відстеження активності
Уточнили ролі student/teacher/admin.
Додали таймстемпи last_login_at, IP входу; окремо згадувалось логування «останнього перегляду оцінок» для студентів (колонка last_grades_view_at у твоїх коментарях — це доробок, який ми інтегрували у код і логіку журналу).
Активація та відновлення
Повна email-верифікація з активаційним кодом.
Відновлення паролю через reset_token + reset_expires.
Захист від зловживань (ліміти/кулдауни при верифікації).
Групи та порядок відображення
Поле order_position у groups, сценарій drag-sort (у адмінці «Журнали/Групи») і збереження нового порядку.
Ведення логу кожної перестановки / створення / видалення журналу в admin_logs.
Журнали, предмети, уроки
Прив’язка предметів (subjects) до груп і викладачів; метаполя для швидкого введення тем/дат уроків.
Менеджмент уроків (lessons) з темою і датою.
Оцінки
Масові оновлення оцінок через journal/update_grades.php.
Сторінка предметного журналу (subject_journal.php) з матрицею «студенти × уроки».
Персональна сторінка студента (student_journal.php) з переглядом своїх оцінок — і оновлення полів «останнього перегляду».
Пошта
Налаштування SMTP у includes/config_mail.php.
Повторне відправлення листів активації з адмін-панелі.
Резервні копії і «System»
Кнопки/скрипти для створення дампів БД у /backups/.
Логи подій: створення дампу, відкриття системних розділів, зміна секретного слова й інші адмін-дії.
PDF-експорт
Підключено Dompdf у /includes/dompdf/ — підготовлено для вивантаження таблиць журналів (табелі/звітність).
Верстка основних екранів під мобайл (адаптивні таблиці, компактні форми).
Хто що бачить (ролі)
Student: логін, перегляд власних оцінок, профіль.
Teacher: свої групи/предмети, уроки, внесення/редагування оцінок, перегляди журналів.
Admin: усе вище + адмінка: користувачі/вчителі, групи/журнали, логи, резервні копії, системні налаштування (у т.ч. «секретне слово викладача»).
Типові сценарії
Адмін створює групу(и), задає порядок, створює предмети, призначає викладачів.
Викладач створює уроки (дата, тема) → виставляє оцінки (масово або точково).
Студент входить і дивиться свої оцінки (відмічаємо «останній перегляд»).
Потрібен друк/звіт — експорт у PDF.
Адмін за потреби робить резервну копію БД, відслідковує логи дій.