CMS Electronic Journal CMS (v 1.0) Електронний журнал для навчальних закладів

Короткий опис CMS "EJ CMS" EJ CMS (Electronic Journal CMS) — це веб-система для ведення електронного журналу, розроблена для шкіл, коледжів та інших навчальних закладів. Вона дозволяє вчителям, адміністраторам і учням ефективно управляти навчальним процесом, включаючи оцінки, уроки, предмети та групи. Система побудована на PHP та MySQL, має простий інтерфейс і підтримує базові функції для організації навчального процесу. EJ CMS легко встановлюється і налаштовується, що робить її зручною для невеликих навчальних закладів. Детальний функціонал CMS 1. **Ролі користувачів** CMS підтримує три основні ролі з різними рівнями доступу: - **Адміністратор (`admin`):** - Повний доступ до системи. - Управління користувачами (учнями, вчителями). - Управління групами, предметами, журналами. - Доступ до адмінпанелі для перегляду та редагування всіх даних. - **Вчитель (`teacher`):** - Доступ до журналів предметів, які веде. - Можливість додавати уроки, виставляти оцінки учням. - Перегляд списків учнів у групах. - **Учень (`student`):** - Перегляд власних оцінок і предметів. - Доступ до журналу своєї групи. #### 2. **Управління групами** - **Створення груп:** - Адміністратор може створювати навчальні групи (наприклад, "Група 8", "Група 12"). - **Прив’язка учнів до груп:** - Під час реєстрації учень обирає групу, до якої належить. - Групи зберігаються в таблиці `groups` (поля: `id`, `group_name`). #### 3. **Управління предметами** - **Створення предметів:** - Предмети прив’язані до груп через `group_id` (таблиця `subjects`: `id`, `group_id`, `subject_name`). - Адміністратор або вчитель може створювати предмети для кожної групи. - **Перегляд предметів:** - Учні бачать список предметів своєї групи (`student_journal.php`). - Вчителі можуть переглядати журнали предметів (`subject_journal.php`). #### 4. **Управління уроками** - **Додавання уроків:** - Вчитель може додати урок для предмету через `subject_journal.php`: - Вказує дату уроку (`lesson_date`) і тему (`topic`). - Уроки зберігаються в таблиці `lessons` (`id`, `subject_id`, `lesson_date`, `topic`). - **Видалення уроків:** - Вчитель може видалити урок, що автоматично видаляє пов’язані оцінки (з таблиці `grades`). - **Відображення уроків:** - Уроки відображаються в журналі предмету як колонки з датою і темою. #### 5. **Управління оцінками** - **Виставлення оцінок:** - Вчитель може виставляти оцінки (1-12) для кожного учня за кожен урок через `subject_journal.php`. - Оцінки зберігаються в таблиці `grades` (`id`, `student_id`, `subject_id`, `lesson_id`, `grade`). - Використовується AJAX-запит до `update_grades.php` для збереження змін. - **Перегляд оцінок:** - Учні бачать свої оцінки в `student_journal.php` у вигляді таблиці з датами уроків, темами та оцінками. - Якщо оцінок немає, відображається повідомлення: "Вибачте, оцінки ще не виставлені." #### 6. **Журнали** - **Групові журнали:** - Вчитель або адміністратор може переглядати журнал групи через `view_journal.php` (посилання "Назад до журналу"). - Журнал показує предмети, прив’язані до групи. - **Журнали предметів:** - `subject_journal.php` дозволяє вчителю переглядати учнів, уроки та оцінки для конкретного предмету. - Відображається таблиця з оцінками, де кожен стовпець — це урок, а кожен рядок — учень. #### 7. **Адмінпанель** - **Управління користувачами:** - Адміністратор може переглядати та редагувати учнів (`admin_students.php`) і вчителів (`admin_teachers.php`). - **Дашборд:** - `dashboard.php` дає огляд системи: групи, предмети, користувачі. - **Система:** - `admin_system.php` (згадане в меню) дозволяє налаштування системи (наприклад, логування, конфігурація). #### 8. **Реєстрація та активація** - **Реєстрація:** - Учні та вчителі можуть зареєструватися через форми (наприклад, `register.php`, `register_student.php`). - Під час реєстрації учень обирає групу (`group_id`). - **Активація:** - Після реєстрації користувач отримує код активації (`activation_code`) і має активувати акаунт через `activate.php`. #### 9. **Зовнішній вигляд** - **Стилі:** - Використовується єдиний CSS-файл `/assets/css/style.css` для всіх сторінок. - Сторінки мають однаковий дизайн: синє меню (`navbar`), білий контейнер (`container`) із тінню, таблиці для оцінок. - **Адаптивність:** - Сторінки адаптовані для зручного перегляду, із відступами та чіткими таблицями. #### 10. **Безпека** - Використовуються підготовлені запити (`prepare`) для захисту від SQL-ін’єкцій. - Паролі хешуються за допомогою `password_hash`. - HTML-вивід екранується через `htmlspecialchars` для захисту від XSS. #### 11. **Логування** - Додані логи (`error_log`) для дебагування (наприклад, `$group_id`, кількість рядків у запитах). - Логи пишуться у файл, визначений у `db_connect.php` (наприклад, `/var/log/brainyservice/ej_errors.log`). #### 12. **Відомі проблеми** - `student_journal.php` може не відображати предмети, якщо `$group_id` не збігається з предметами (планується виправлення у версії 2.0). Як використовувати CMS 1. **Адміністратор:** - Реєструє вчителів і учнів, створює групи та предмети через адмінпанель. - Налаштовує систему (наприклад, додає журнали). 2. **Вчитель:** - Веде журнал предмету: додає уроки, виставляє оцінки. 3. **Учень:** - Переглядає свої оцінки за предметами. Ціна 5000 грн.
Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот Скріншот