- групи та їх порядок відображення,
предмети, закріплені за групами й викладачами,
уроки (дати, теми),
оцінки по уроках,
користувачів (активація e-mail, відновлення паролю, логін-лог).
Інтерфейс поділений на загальні сторінки (логін/реєстрація/активація), зону «Журнали» (груповий/предметний/студентський перегляд) та адмінку (користувачі, вчителі, системні задачі, логи, дампи БД).
1) Авторизація, реєстрація, безпека
- Логін/логаут (сесії, хешування паролів).
E-mail активація акаунта (активаційний код).
Відновлення паролю (reset_token + дедлайн).
Обмеження доступу за ролями (admin/teacher/student).
Базовий CSRF у деяких форм-кроках (реєстрація/верифікація).
- Перелік/редагування/видалення користувачів.
Прив’язка студентів до груп.
Окрема вкладка для вчителів (створення, редагування, керування правами).
Ведення логів адмін-операцій у admin_logs (хто що зробив і коли).
- Створення «журналів» для груп (фактично — контейнер для предметів і уроків).
Ручне сортування груп/журналів через order_position (збереження нового порядку).
Додавання предметів до груп і закріплення за викладачем.
Планування/створення уроків: дата + тема уроку.
- Внесення оцінок по конкретному уроку або по студенту.
Масове оновлення оцінок через AJAX-ендпойнт update_grades.php.
Перегляд оцінок:
по групі/предмету (вчитель/адмін),
персональний «кабінет студента» зі своїми оцінками (роль student).
- PHPMailer: надсилання активацій, службових листів (SMTP-налаштунки у config_mail.php).
Можливість повторного надсилання активаційного листа з адмінки.
- Домашня інтеграція Dompdf — експорт потрібних звітів/журналів у PDF (підключено, готово до використання у відповідних контролерах).
- Резервні копії: створення дампів БД у /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.
Повторне відправлення листів активації з адмін-панелі.
- Кнопки/скрипти для створення дампів БД у /backups/.
Логи подій: створення дампу, відкриття системних розділів, зміна секретного слова й інші адмін-дії.
- Підключено Dompdf у /includes/dompdf/ — підготовлено для вивантаження таблиць журналів (табелі/звітність).
Хто що бачить (ролі)
- Student: логін, перегляд власних оцінок, профіль.
Teacher: свої групи/предмети, уроки, внесення/редагування оцінок, перегляди журналів.
Admin: усе вище + адмінка: користувачі/вчителі, групи/журнали, логи, резервні копії, системні налаштування (у т.ч. «секретне слово викладача»).
- Адмін створює групу(и), задає порядок, створює предмети, призначає викладачів.
Викладач створює уроки (дата, тема) → виставляє оцінки (масово або точково).
Студент входить і дивиться свої оцінки (відмічаємо «останній перегляд»).
Потрібен друк/звіт — експорт у PDF.
Адмін за потреби робить резервну копію БД, відслідковує логи дій.
► Показать
► Показать
► Показать