# DepEd Class Scheduling System Version: **v12 Advanced Conflict + Availability Suggestions Edition** This PHP + MySQL system supports separate school workspaces. Each school has its own users, teachers, subjects, rooms, grade levels, sections, school years, terms, logo, and schedules. ## Main Features - School self-registration - Separate records and schedules per school - School Admin, School ICT, and Teacher roles - Teacher login using username, email, or `SCHOOL-CODE/T-0001` - Bulk CSV entry for users, teachers, grade levels, sections, subjects, rooms, and schedules - Grade Level filter in schedule creation so only assigned sections appear - Advanced conflict detection for teacher, room, section overlaps, and duplicate subject-to-section-per-day assignments per school - User account settings for username, email, and password changes - School logo settings per school - Laravel-style responsive UI ## Fresh Installation 1. Create a MySQL database named `deped_schedule_db`. 2. Import: ```sql database/schema.sql ``` 3. Edit database credentials in: ```text app/config.php ``` 4. Open: ```text http://localhost/deped_class_scheduling_system/index.php ``` or: ```text http://localhost/deped_class_scheduling_system/public/index.php ``` ## Existing Installation Upgrade If you already installed an older version, run these update files in order if you have not run them yet: ```text database/update_v2_bulk_settings.sql database/update_v3_teacher_login_fix.sql database/update_v4_uppercase_bulk_schedule_filter.sql database/update_v6_multi_school_accounts.sql database/update_v12_advanced_conflict_suggestions.sql ``` For a clean installation, use only `database/schema.sql`. ## Default Demo Login ```text Username: admin Password: 4561 ``` This demo account belongs to `DEMO NATIONAL HIGH SCHOOL`. ## Creating Another School Open the landing page and click **Create School Account**. The system will create: - A separate school workspace - First School Admin account - Default school year `2026-2027` - Default trimester entries - Default Grade 7 to Grade 12 records That school will not see the demo school schedules or records. ## Important Multi-School Behavior The following records are separated by `school_id`: - users - teachers - subjects - rooms - grade levels - sections - school years - terms - logo settings - schedules This means two schools may both have `GRADE 7 - MABINI`, `ROOM 101`, or `MATH7`, but their records remain separate. ## Teacher Employee Number Login Teachers may login with username or email. If using employee number and there may be duplicate employee numbers across schools, use: ```text SCHOOL-CODE/T-0001 ``` Example: ```text DEMO-SCHOOL/T-0001 Password: 4561 ``` ## CSV Bulk Templates Go to **Bulk Entry** inside the dashboard and download templates for: - Users / Login Accounts - Teachers - Grade Levels - Sections - Subjects - Rooms - Schedules Bulk imports are applied only to the logged-in school. ## v7 Smart Multi-Entry Scheduling The Schedule Management page now supports faster schedule encoding: - Select multiple days in one save. - Add multiple subject/time rows in one form. - One save can create many valid schedule entries. - Conflict detection still blocks teacher, room, and section overlaps. - Editing remains safe: one existing schedule row is edited at a time. To create several new entries, click **Cancel Edit** first. No database migration is required for v7. A note-only file is included at `database/update_v7_smart_multi_schedule.sql`. ## v8 Sidebar Layout Fix - Reorganized sidebar into clear role-based groups. - Fixed sidebar class mismatch so navigation displays correctly. - Added active menu highlighting, sticky brand header, user profile block, school context block, and footer logout. - Improved responsive/mobile sidebar behavior with overlay, Escape close, and ARIA toggle state. ## v9 CSRF Helper Fix This version fixes the XAMPP fatal error: `Call to undefined function csrf_field() in public/schedules.php` The fix loads `app/csrf.php` automatically through `app/auth.php`, so all secured pages can safely use `csrf_field()` and `verify_csrf()`. ## V10 Printable Schedule Board This version improves the Schedule List so it is no longer shown only as a long table. The schedule management page now displays schedules as weekly section cards with day columns for Monday to Saturday. ### New Schedule List Features - Presentable weekly schedule board grouped by section. - Filters for School Year, Term, Grade Level, Section, and keyword search. - One-click Print Schedule button. - Dedicated printable page: `public/print_schedule.php`. - Print output includes school logo, school name, schedule summary, weekly section cards, and signature lines. - Edit/Delete buttons remain available in the web view but are hidden during printing. No database update is required for this version. ## v11 Schedule Views Enhancement This version adds a more powerful schedule viewing layer: - Schedule List can now filter by Section, Teacher, and Room. - Schedule List can display schedules grouped by: - Section weekly schedule - Teacher load schedule - Room utilization schedule - Printable schedule output follows the selected group view. - Added a full-screen **Schedule Big View** at `public/schedule_board.php`. - Schedule Big View supports: - Grade Level Load and Vacant Board - Teacher Load and Vacant Board - Room Use and Vacant Board - Schedule Big View includes a full-screen button for projector/monitor display. - Big View can also be printed in landscape format. No database update is required for v11. ## v12 Advanced Conflict Management + Availability Suggestions This version strengthens the scheduling conflict engine: - Blocks duplicate subject assignment for the same section on the same day within the same school year and term. - Example: if `MATH7` is already assigned to `GRADE 7 - MABINI` on Monday, the system will reject another Monday `MATH7` entry for that section even if the time is different. - Duplicate-subject validation works in: - Schedule Management form - Schedule update flow - Bulk Schedule CSV import - Multi-entry/batch schedule saving - Existing teacher, room, and section time-overlap validation remains active. - Added **Availability Suggestions** in Schedule Management: - Vacant Teachers - Vacant Rooms - Open Time Slots - Suggested teacher, room, or time can be applied directly to the form. For existing installations, run: ```text database/update_v12_advanced_conflict_suggestions.sql ``` For a fresh installation, import only `database/schema.sql`. ## V13 Update - Seamless Teacher Load View and Print Preview This version enhances the Teacher Load page so teacher accounts and schedule creators can view teaching loads in a clean weekly card layout, similar to the admin schedule board. ### Added / Updated - `public/my_schedule.php` - Teacher-friendly weekly load board. - Admin/ICT can filter by teacher, school year, and term. - Teacher accounts are automatically locked to their own assigned teaching load. - Summary cards show total classes, total hours, sections handled, and subjects. - `public/print_teacher_load.php` - Dedicated print-preview page for teacher loads. - Includes school logo, school name, school year, term, generated date, and weekly teacher load cards. - Includes signature lines for prepared by, checked by, and approved by. - `partials/header.php` - Added Teacher Load View link under Scheduling for Admin/ICT. - `public/assets/css/style.css` - Added polished Laravel-style teacher load cards, filter panel, metrics, and print styling. No database update is required for this version. ## v14 Mobile App Ready and Responsive Update This version adds a responsive/mobile-ready layer across the system: - PWA manifest and service worker for installable app behavior on supported browsers. - App icons for home-screen installation. - Mobile-safe viewport settings including safe-area support for phones with notches. - Touch-friendly buttons, inputs, select boxes, and schedule controls. - Sidebar drawer behavior improved for phones and tablets. - Tables automatically convert into readable mobile cards. - Schedule cards, teacher load, print pages, and big schedule board are improved for smaller screens. - Large matrix views remain horizontally scrollable on mobile so the full schedule can still be checked. PWA files added: ```text public/manifest.webmanifest public/sw.js public/assets/img/app-icon.svg public/assets/img/app-icon-192.png public/assets/img/app-icon-512.png ``` No database update is required for v14. ## v15 Login Page and Default Logo Update - Added the default DepEd logo file at `logo.png` in the project root. - Login page now uses the default logo automatically when no school-specific uploaded logo exists. - If installed in XAMPP, the default logo path is: ```text C:\xampp\htdocs\deped_class_scheduling_system\logo.png ``` - The login page has been redesigned into a modern, professional split-screen layout with a responsive mobile view. - Password visibility toggle was added for better usability. - No database update is required for this version. ## Version 16 Login Logo Fix The login page now displays only one logo. The duplicate showcase logo was removed, while the main login card keeps the default/logo upload fallback.