# Scheduling and Grade Monitoring System - Complete Documentation

**Version:** 2.0  
**Last Updated:** March 28, 2026  
**Status:** ✓ Production Ready

---

## Table of Contents

1. [System Overview](#system-overview)
2. [Core Functionalities](#core-functionalities)
3. [User Roles and Permissions](#user-roles-and-permissions)
4. [Administrative Features](#administrative-features)
5. [Faculty Features](#faculty-features)
6. [Student Features](#student-features)
7. [System Management](#system-management)
8. [Database Architecture](#database-architecture)
9. [Academic Curriculum](#academic-curriculum)
10. [Technical Stack & Installation](#technical-stack--installation)
11. [Security Features](#security-features)
12. [API Endpoints](#api-endpoints)
13. [Troubleshooting](#troubleshooting)

---

## System Overview

The **Scheduling and Grade Monitoring System** is a comprehensive web-based educational management platform designed for academic institutions. It manages the complete student lifecycle including enrollment, course scheduling, faculty assignments, and performance tracking.

### Key Capabilities

- **Multi-Role Access Control**: Separate interfaces for admins, instructors, and students
- **Complete Curriculum Management**: Full BSIT degree programs with specialization tracks
- **Flexible Scheduling**: Section-based scheduling with room assignments and time management
- **Comprehensive Grading**: Midterm, final, and overall grade tracking with GPA calculations
- **Course Prerequisites**: Prerequisite validation to ensure academic progression
- **Audit Trail**: Complete activity logging for compliance and security
- **Real-Time Reporting**: Dashboard analytics and performance reports
- **Backup & Recovery**: Automated backup features for data protection

---

## Core Functionalities

### 1. User Authentication & Authorization

#### Features:
- Username and password-based login
- Role-based access control (Admin, Instructor, Student)
- Session management with automatic timeouts
- Password reset and recovery
- Account activation/deactivation

#### User Table Structure:
```
- user_id (Primary Key)
- username (Unique, Required)
- email (Unique, Required)
- password (Hashed, Required)
- first_name, last_name
- role (admin, instructor, student)
- is_active (account status)
- created_at, updated_at (timestamps)
```

#### Login Flow:
1. User enters credentials at `login.php`
2. System validates against `users` table
3. Password verified using secure hashing
4. Session created with role-based permissions
5. User redirected to role-specific dashboard

---

### 2. College & Department Management

#### Organizational Hierarchy:
```
College → Department → Major → Courses → Sections
```

#### Admin Operations:

**Create College:**
- College code (CCSICT)
- College name
- Description
- Active status

**Create Department:**
- College association
- Department code (IT)
- Department name
- Description

**Create Major:**
- Department association
- Major code (BSIT-BA, BSIT-NS, etc.)
- Major name
- Total units (173 for BSIT)
- Description

#### Default Configuration:
- College: CCSICT (College of Computing Studies, ICT)
- Department: IT (Information Technology)
- 4 Majors: BA, NS, WMAD, BPO

---

### 3. Course Management

#### Course Operations:

**Create Course:**
- Course code (e.g., IT 112)
- Course name
- Units (credit hours)
- Lecture hours per week
- Lab hours per week
- Year level (1-4)
- Semester (1st, 2nd, Mid-Year)
- Department assignment
- Major assignment (optional for shared courses)

**Edit Course:**
- Modify course details
- Update prerequisites
- Change assignment
- Adjust unit/hour allocation

**Delete Course:**
- Archive courses (soft delete)
- Prevent deletion of enrolled courses

**Course Database:**
- Total courses: 55
- Total units: 173
- Shared foundation courses (GenEd, PE, NSTP)
- Specialization-specific courses

#### Course Code Categories:
- **GEC**: General Education Courses
- **IT**: Core Information Technology courses
- **IT BA**: Business Analytics specialization
- **IT NS**: Network Security specialization
- **IT WMAD**: Web & Mobile App Development specialization
- **IT BPO**: Business Process Outsourcing
- **IT ELEC**: IT Electives
- **PE**: Physical Education
- **NSTP**: National Service Training Program

---

### 4. Prerequisite Management

#### Features:
- Define course prerequisites
- Validate student eligibility
- Display prerequisite chains
- Automatic prerequisite checking during enrollment

#### Example Prerequisites:
```
IT 121 → requires IT 112
IT 211 → requires IT 121
IT 222 → requires IT 211 AND IT 123
IT 412 → requires IT 323
```

#### Prerequisite Table:
```
course_id, prerequisite_course_id, created_at
```

---

### 5. Faculty Management

#### Faculty Operations:

**Add Faculty:**
- User account creation
- First name, Last name
- Email address
- Contact number
- Department assignment
- Specialization designation
- Active status

**Assign Specializations:**
- Primary specialization
- Multiple specialization support
- Specialization tracking table

**Faculty Assignment:**
- Course section assignment
- Load management
- Room assignments
- Schedule coordination

**Faculty Credentials:**
- User ID linking
- Department association
- Specialization tracking
- Contact information
- Active/inactive status

#### Faculty Record Fields:
```
instructor_id, user_id, first_name, last_name
department_id, specialization, email, contact_number
is_active, created_at, updated_at
```

---

### 6. Room & Facilities Management

#### Room Operations:

**Add Room:**
- Room code (e.g., CSB-301)
- Room name
- Department assignment
- Building name
- Floor number
- Room type (classroom, laboratory, lecturehall, studio)
- Capacity (maximum students)
- Description

**Room Assignment:**
- Faculty permanent assignments
- Section-based room scheduling
- Multi-session room usage
- Conflict detection and prevention

**Room Scheduling:**
- Track room usage by day/time
- Prevent double-booking
- Capacity management
- Building/floor organization

#### Room Information Table:
```
room_id, room_code (UNIQUE), room_name, department_id
capacity, building, floor, room_type, description
is_active, created_at, updated_at
```

---

### 7. Section Management

#### Section Creation:

**Define Section:**
- Unique section code (IT112-1A)
- Associated course
- Assigned instructor
- Year level and semester
- Maximum students (default: 50)
- Meeting schedule:
  - Day of week (MWF, TTh, etc.)
  - Start time
  - End time
- Assigned room
- Department and major association

**Section Operations:**
- Create multiple sections per course
- Track current enrollment
- Auto-manage enrollment counts
- Activate/deactivate sections
- Edit schedule and assignments

#### Section Information:
```
section_id, section_code (UNIQUE), course_id, instructor_id
year_level, semester, max_students, current_enrollment
room_id, schedule_day, schedule_time_start, schedule_time_end
department_id, major_id, is_active, created_at
```

---

### 8. Student Management

#### Student Operations:

**Add Student:**
- User account creation
- First name, Last name
- Student number (UNIQUE)
- Email address (UNIQUE)
- Contact number
- Date of birth
- College, Department, Major assignment
- Year level (1-4)
- Section assignment
- Enrollment status (active, inactive, graduated, dropped)

**Student Records Track:**
- Academic progress
- Department/Major changes
- Section transfers
- Enrollment history
- Status changes

**Student Information System:**
```
student_id, user_id, first_name, last_name, student_number
birth_date, email, contact_number, college_id, department_id
major_id, year_level, section_id, enrollment_status
created_at, updated_at
```

---

### 9. Student Enrollment System

#### Enrollment Operations:

**Enroll Student in Course:**
- Course selection
- Section assignment
- Instructor designation
- Prerequisite verification
- Duplicate enrollment prevention

**Enroll Student in Section:**
- Track section enrollment
- Automatic enrollment timestamp
- Enrollment status tracking
- Drop course functionality

**Enrollment Tracking:**
- Section enrollment (One-to-Many)
- Course enrollment (One-to-Many)
- Enrollment status: enrolled, dropped, completed

#### Enrollment Tables:

**studentsections:**
```
id, student_id, section_id
enrollment_status, enrolled_at, updated_at
```

**studentcourseenrollment:**
```
id, student_id, course_id, section_id, instructor_id
midterm_grade, final_grade, overall_grade, grade_letter
remarks, enrollment_status, enrolled_at, updated_at
```

---

### 10. Grading System

#### Grade Management:

**Grade Entry:**
- Midterm grade entry (0-100 or 0-5 scale)
- Final grade entry
- Overall grade calculation
- Letter grade assignment

**Grade Components:**
- **Midterm Grade**: DECIMAL(5,2)
- **Final Grade**: DECIMAL(5,2)
- **Overall Grade**: DECIMAL(5,2)
- **Letter Grade**: A, B, C, D, F
- **Remarks**: Passed, Failed, Incomplete, Withdrawn

**Grade Calculation:**
```
Overall Grade = (Midterm × 0.4) + (Final × 0.6)
```

**Grade Scale:**
```
A: 90-100 (Excellent)
B: 80-89  (Good)
C: 70-79  (Satisfactory)
D: 60-69  (Passing)
F: <60    (Failed)
```

**Grade Operations:**
- View student transcript
- View class grade list
- Generate grade reports
- Print grade sheets
- Export grade reports (CSV, PDF)

#### Grade Entry Points:
- Admin: View and edit all grades
- Instructor: View and edit their class grades
- Student: View own grades only

---

### 11. Scheduling & Time Management

#### Schedule Features:

**Create Schedule:**
- Section assignment
- Course/Instructor/Room linking
- Day and time slots
- Repeat schedule per week
- Semester assignment

**Schedule Conflict Detection:**
- Room double-booking prevention
- Instructor time conflict detection
- Student schedule overlap detection
- Room capacity validation

**Schedule Types:**
- Regular class meetings
- Lab sessions
- Special meetings
- Makeup sessions

**Schedule Display:**
- Student view: Personal schedule
- Instructor view: Teaching schedule
- Admin view: Full system schedule
- Room view: Room utilization schedule

#### Schedule Information:
```
section_id, room_id, schedule_day
schedule_time_start, schedule_time_end
year_level, semester, is_active
```

---

### 12. Reports & Analytics

#### Available Reports:

**Academic Reports:**
- Student transcript
- Class roster
- Grade distribution report
- Enrollment report
- Course enrollment by section
- Student progress report
- GPA calculation report

**Administrative Reports:**
- Faculty load report
- Room utilization report
- Course offering status
- Prerequisite enforcement report
- Student status summary

**Scheduling Reports:**
- Schedule conflict report
- Room booking report
- Faculty time allocation
- Weekly schedule view
- Semester calendar

**System Reports:**
- User activity report
- Audit trail report
- Data backup status
- System performance metrics

#### Report Export Options:
- PDF format
- Excel (CSV) format
- HTML view
- Print-friendly layout

---

### 13. Activity & Audit Logging

#### Activity Log Features:

**Log Information Tracked:**
- User ID (who performed action)
- Action type (Create, Read, Update, Delete)
- Table name (which data type modified)
- Record ID (specific record changed)
- Old value (previous data)
- New value (new data)
- Timestamp
- IP address
- User agent (browser info)

**Log Table:**
```
log_id, user_id, action, table_name, record_id
old_value, new_value, ip_address, user_agent, created_at
```

**Audit Trail Usage:**
- Compliance tracking
- Security investigation
- Data recovery
- User accountability
- Change history review

#### Audit Log Features:

**JSON-Based Audit:**
- Detailed change information
- Stored in JSON format
- Advanced querying capability
- Historical tracking

**Audit Table:**
```
audit_id, user_id, audit_action, audit_table, audit_record_id
audit_details (JSON), audit_timestamp
```

---

## User Roles and Permissions

### Administrator Role

#### Responsibilities:
- System configuration and setup
- User account management
- Academic structure management
- Curriculum administration
- Report generation and access
- System monitoring and maintenance

#### Admin Permissions:

**Core Operations:**
- ✓ Create, read, update, delete all users
- ✓ Manage colleges, departments, majors
- ✓ Create and edit all courses
- ✓ Manage prerequisites
- ✓ Add/edit faculty members
- ✓ Manage rooms and facilities

**Student Management:**
- ✓ Add/edit/delete students
- ✓ Manage enrollments
- ✓ View/edit grades
- ✓ Monitor attendance
- ✓ Process transfers and drops
- ✓ Generate transcripts

**Scheduling:**
- ✓ Create sections
- ✓ Assign instructors to sections
- ✓ Assign rooms
- ✓ Create schedules
- ✓ Manage schedule conflicts
- ✓ Override schedule rules

**Reporting:**
- ✓ Access all reports
- ✓ Generate schedules
- ✓ Export data
- ✓ View audit logs
- ✓ Monitor system usage

#### Admin Modules:
- Dashboard (analytics overview)
- User Management
- Colleges Management
- Departments Management
- Majors Management
- Courses Management
- Sections Management
- Faculty Management
- Students Management
- Grades Management
- Rooms Management
- Scheduling
- Reports
- Settings
- Activity Logs
- Database Backup/Restore

---

### Faculty/Instructor Role

#### Responsibilities:
- Teach assigned courses
- Enter and manage student grades
- View class rosters
- Monitor student progress
- Manage course materials

#### Faculty Permissions:

**Viewing:**
- ✓ View own profile
- ✓ View assigned courses/sections
- ✓ View class rosters
- ✓ View student grades (own classes)
- ✓ View personal schedule
- ✓ View assigned room

**Operations:**
- ✓ Enter/edit grades for own classes
- ✓ View student enrollment status
- ✓ Add remarks to grades
- ✓ Export class roster
- ✓ Export grade sheet

**Restrictions:**
- ✗ Cannot add/modify courses
- ✗ Cannot create sections
- ✗ Cannot manage other faculty
- ✗ Cannot view other instructors' grades
- ✗ Cannot access admin settings

#### Faculty Modules:
- Dashboard (teaching dashboard)
- Courses (view assigned)
- Sections (view assigned)
- Grades (students in own classes)
- Roster (class enrollment)
- Schedule (personal teaching schedule)
- Profile (edit personal info)

---

### Student Role

#### Responsibilities:
- View enrolled courses
- View personal schedule
- Monitor grades
- View academic information

#### Student Permissions:

**Viewing:**
- ✓ View own profile
- ✓ View personal dashboard
- ✓ View enrolled courses
- ✓ View personal schedule
- ✓ View own grades
- ✓ View transcript

**Operations:**
- ✓ Edit personal information (limited)
- ✓ View course details
- ✓ Download transcript
- ✓ View grade reports

**Restrictions:**
- ✗ Cannot modify grades
- ✗ Cannot manage users
- ✗ Cannot access admin functions
- ✗ Cannot view other students' information
- ✗ Cannot modify course assignments

#### Student Modules:
- Dashboard (student portal)
- Courses (enrolled courses)
- Schedule (personal class schedule)
- Grades (personal grades)
- Profile (view/edit personal info)

---

## Administrative Features

### 1. User Management

**Create User Account:**
```
POST /admin/users
- username (unique, required)
- email (unique, required)
- password (hashed, required)
- first_name, last_name
- role (admin, instructor, student)
```

**Manage User Status:**
- Activate/deactivate accounts
- Reset passwords
- Change roles
- Update profile information

**User Search & Filter:**
- Search by username/email
- Filter by role
- Filter by status
- Pagination

### 2. College & Department Setup

**College Operations:**
- Add new college
- Edit college information
- View all colleges
- Activate/deactivate colleges

**Department Operations:**
- Create departments under college
- Add department code and name
- Associate courses
- Edit department details

### 3. Academic Program Management

**Major Setup:**
- Create degree programs (majors)
- Define major specialization tracks
- Set total units required
- Link specialization courses

**Course Curriculum:**
- Add/edit courses
- Define course prerequisites
- Set lecture/lab hours
- Assign to year and semester
- Link to majors

### 4. Faculty Assignment

**Add Faculty:**
- Create faculty user profile
- Assign to department
- Define specializations
- Assign office/room

**Faculty Load Management:**
- Assign courses/sections
- Track teaching load
- Manage office hours
- View faculty utilization

### 5. Student Enrollment Management

**Bulk Enrollment:**
- Import student list (CSV)
- Assign to sections
- Verify prerequisites
- Generate enrollment reports

**Individual Enrollment:**
- Register single student
- Verify eligibility
- Check prerequisites
- Assign to section

**Enrollment Control:**
- Add students to courses
- Drop students from courses
- Process transfers
- Change student major/section

### 6. Grading & Transcript Management

**Grade Entry:**
- Enter midterm grades
- Enter final grades
- Calculate overall grades
- Assign letter grades
- Add remarks

**Transcript Generation:**
- View student transcript
- Include all completed courses
- Calculate cumulative GPA
- Generate official transcript
- Export to PDF

### 7. Schedule Management

**Create Schedule:**
- Add new sections
- Assign instructors
- Assign rooms
- Set meeting times
- Establish schedule patterns

**Conflict Detection:**
- Identify room conflicts
- Identify instructor conflicts
- Resolve scheduling issues
- Auto-suggestions

**Schedule Publishing:**
- Publish schedule to students/faculty
- Lock schedule for semester
- Allow schedule changes (before lock)
- Generate schedule reports

### 8. Backup & Database Management

**Backup Operations:**
- Create full database backup
- Schedule automatic backups
- Download backup file
- Backup history log

**Database Maintenance:**
- Optimize database
- Repair corrupted tables
- Clear old logs
- Archive historical data

**Restore Operations:**
- Restore from backup
- Point-in-time restore
- Partial table restore
- Verify restore integrity

---

## Faculty Features

### 1. Teaching Dashboard

**Dashboard Display:**
- Assigned courses/sections
- Current semester view
- Student count per section
- Recent grade entries
- Schedule overview
- Announcements

### 2. Class Management

**View Class Information:**
- Course code and name
- Section number
- Meeting time and location
- Student enrollment count
- Maximum capacity

**Class Roster:**
- List all enrolled students
- Student ID and name
- Contact information
- Attendance tracking
- Export roster to Excel/PDF

### 3. Grade Management

**Grade Entry Interface:**
- Student list view
- Grade entry table
- Midterm/final grade fields
- Remarks/comments field
- Auto-calculate overall grade

**Grade Operations:**
- Enter grades
- Update/edit grades
- View grade history
- Add comments
- Export grade sheet
- Print grade report

**Grade Notifications:**
- Alert students of low grades
- Send warnings for failing grades
- View grade statistics

### 4. Student Monitoring

**Track Student Progress:**
- View enrollment status
- Monitor attendance
- Track grade trends
- Identify at-risk students
- Send feedback

### 5. Course Materials Management

**Upload/Share Materials:**
- Course syllabus
- Lecture notes
- Assignment documents
- Reading materials
- Exam schedules

### 6. Personal Schedule

**View Teaching Schedule:**
- Week view
- Semester view
- Course meeting times
- Location/room assignment
- Office hours

---

## Student Features

### 1. Student Portal Dashboard

**Dashboard Information:**
- Semester overview
- Enrolled courses
- Current grades
- Academic status
- Upcoming events
- Announcements

### 2. Course Management

**View Courses:**
- Enrolled courses list
- Course code and name
- Instructor name
- Meeting time/location
- Course credits
- Prerequisites status

**Course Details:**
- Course description
- Syllabus
- Course materials
- Grading criteria
- Instructor contact info

### 3. Personal Schedule

**Schedule Display:**
- Weekly schedule view
- Course meeting times
- Room/building location
- Instructor name
- Calendar view

**Schedule Features:**
- Export to calendar
- Set schedule reminders
- Mobile-friendly view
- Print schedule

### 4. Grade Monitoring

**View Grades:**
- Current semester grades
- Grade breakdown (midterm/final)
- Letter grades
- Course status
- GPA calculation

**Grade History:**
- View previous semesters
- Transcript view
- Download transcript
- View grade trends
- Calculate cumulative GPA

### 5. Student Profile

**Profile Information:**
- Personal details
- Contact information
- Academic standing
- Enrollment status
- Program information

**Profile Management:**
- Update contact information
- Change password
- Set preferences
- View account security

### 6. Academic Information

**View Academic Standing:**
- Current GPA
- Semester GPA
- Academic status
- Probation status
- Progress toward degree

---

## System Management

### 1. Settings Configuration

**System Settings:**
- School year (2025-2026)
- Current semester (1st, 2nd, Summer)
- Date format
- Time zone
- Items per page (pagination)
- Backup frequency
- Maximum upload size
- System language
- System currency

**Settings Types:**
- String settings
- Integer settings
- Boolean settings
- JSON settings

### 2. Email Configuration

**Email Setup:**
- SMTP server configuration
- Email templates
- Sender name/address
- Email notifications
- Bulk messaging

**Automated Emails:**
- Account creation notification
- Grade posted notification
- Schedule change notification
- System alerts
- Reminders

### 3. System Health Monitoring

**Performance Metrics:**
- Database size
- User count
- Active sessions
- System uptime
- Response times
- Query performance

**System Status:**
- Service status
- Database connectivity
- Backup status
- Error rate
- Recent issues

### 4. User Activity Monitoring

**Activity Dashboard:**
- Active users count
- Recent logins
- User actions log
- Failed login attempts
- Session information

**Activity Reporting:**
- Generate usage reports
- User access patterns
- Peak usage times
- Module usage statistics

### 5. Data Export/Import

**Export Functions:**
- Export students to CSV
- Export courses to CSV
- Export grades to Excel
- Export reports to PDF
- Export schedules

**Import Functions:**
- Import students (CSV)
- Import faculty (CSV)
- Import course data
- Batch operations
- Validation and error checking

---

## Database Architecture

### Database Overview

**Database Name:** `db_sched`  
**Engine:** MySQL/MariaDB (InnoDB)  
**Character Set:** UTF-8 MB4  
**Total Tables:** 14  
**Total Courses:** 55  
**Total Units:** 173  

### Core Tables

#### 1. Authentication & Access
- `users` - User accounts and roles
- `system_settings` - System configuration

#### 2. Organizational Structure
- `colleges` - Academic colleges
- `departments` - Academic departments
- `majors` - Degree programs

#### 3. Academic Content
- `courses` - Course catalog
- `course_prerequisites` - Course dependencies

#### 4. Faculty
- `instructors` - Faculty members
- `faculty_specialization` - Faculty specializations

#### 5. Facilities
- `rooms` - Classroom and lab spaces
- `faculty_room_assignments` - Room assignments

#### 6. Scheduling & Enrollment
- `sections` - Course sections
- `room_assignments` - Section room bookings
- `students` - Student records
- `studentsections` - Student section enrollment
- `studentcourseenrollment` - Student course enrollment
- `tb_sched` - Combined schedule/grades table

#### 7. Audit & Logging
- `activity_logs` - User activity log
- `audit_logs` - Detailed audit trail

### Table Relationships

```
users (1) ──→ (N) instructors
users (1) ──→ (N) students
users (1) ──→ (N) activity_logs

colleges (1) ──→ (N) departments
departments (1) ──→ (N) majors
departments (1) ──→ (N) courses
departments (1) ──→ (N) rooms
departments (1) ──→ (N) instructors

majors (1) ──→ (N) courses
majors (1) ──→ (N) sections
majors (1) ──→ (N) students

courses (1) ──→ (N) sections
courses (1) ──→ (N) course_prerequisites
courses (1) ──→ (N) studentcourseenrollment

instructors (1) ──→ (N) sections
instructors (1) ──→ (N) faculty_specialization
instructors (1) ──→ (N) faculty_room_assignments

rooms (1) ──→ (N) sections
rooms (1) ──→ (N) room_assignments
rooms (1) ──→ (N) faculty_room_assignments

sections (1) ──→ (N) studentsections
sections (1) ──→ (N) room_assignments
sections (1) ──→ (N) tb_sched

students (1) ──→ (N) studentsections
students (1) ──→ (N) studentcourseenrollment
students (1) ──→ (N) tb_sched
```

### Foreign Key Constraints

**Cascade Delete:**
- Department → Courses
- Department → Rooms
- Major → Sections
- Course → Course Prerequisites
- Course → Student Enrollments
- Section → Student Sections

**Set Null on Delete:**
- College → Department
- Department → Instructor
- Section → Room
- Instructor → Grade Records

---

## Academic Curriculum

### BSIT Program Structure

**Degree:** Bachelor of Science in Information Technology  
**Duration:** 4 Years (8 Semesters)  
**Total Units:** 173  
**Total Courses:** 55  
**Specialization Tracks:** 4 (BA, NS, WMAD, BPO)  

### Specialization Options

#### 1. Business Analytics (BSIT-BA)
**Focus:** Data analysis, business intelligence, analytics tools  
**Specialization Courses:**
- IT BA 1: Fundamentals of Business Analytics (3 units)
- IT BA 2: Enterprise Data Management (3 units)
- IT BA 3: Analytics Modeling (3 units)
- IT BA 4: Analytics Tools (3 units)
- IT BA 5: Analytics Application (3 units)

#### 2. Network Security (BSIT-NS)
**Focus:** Network security, cybersecurity, system administration  
**Core Security Courses:**
- IT 314: Info Security 1
- IT 321: Info Security 2
- IT 312: Networking 2
- IT 411: System Admin and Maintenance

#### 3. Web & Mobile App Development (BSIT-WMAD)
**Focus:** Web technologies, mobile platforms, UI/UX  
**Development Courses:**
- IT 226: App Dev and Emerging Tech
- IT ELEC 3: Web Systems and Tech
- IT ELEC 4: HCI 2
- IT 224: Integrative Programming

#### 4. Business Process Outsourcing (BSIT-BPO)
**Focus:** Business operations, process optimization  
**BPO Courses:**
- IT BPO 1: Business Communication
- IT 225: Accounting for IT
- IT 223: Quantitative Methods

### Year-by-Year Breakdown

#### Year 1: Foundation (52 units, 18 courses)

**1st Semester (26 units):**
- GEC 4: Purposive Communication (3)
- GEC 5: Art Appreciation (3)
- IT INST 1: Climate Change & DRM (3)
- IT GE ELEC 1: Health & Wellness (2)
- IT GE ELEC 2: Foreign Language 1 (3)
- IT 111: Introduction to Computing (3)
- IT 112: Programming 1 (3)
- PE 1: Movement Enhancement (2)
- NSTP 1: CWTS/LTS/MS 1 (3)

**2nd Semester (26 units):**
- GEC 1: Understanding the Self (3)
- GEC 2: Philippine History (3)
- GEC 3: Math in the Modern World (3)
- GEC 7: Ethics (3)
- IT 121: Programming 2 (3)
- IT 122: HCI 1 (3)
- IT 123: Discrete Math (3)
- PE 2: Fitness Exercises (2)
- NSTP 2: CWTS/LTS/MS 2 (3)

#### Year 2: Core Development (55 units, 17 courses)

**1st Semester (29 units):**
- GEC 6: Science, Technology & Society (3)
- GEC 8: Contemporary World (3)
- IT NST 2: Creative & Critical Thinking (3)
- IT GE ELEC 3: Foreign Language 2 (3)
- IT 211: Data Structures & Algorithms (3)
- IT ELEC 1: Platform Tech (3)
- IT ELEC 2: Object-Oriented Programming (3)
- IT BPO 1: Business Communication (3)
- PE 3: Dance and Sports (3)

**2nd Semester (26 units):**
- IT GE ELEC 4: Entrepreneurial Mind (3)
- GEC 9: Rizal (3)
- IT 221: Info Management (3)
- IT 222: Networking 1 (3)
- IT 223: Quantitative Methods (3)
- IT 224: Integrative Programming (3)
- IT 225: Accounting for IT (3)
- PE 4: Team Sports (2)

#### Year 3: Specialization & Advanced (42 units, 14 courses)

**Mid-Year (6 units):**
- IT 226: App Dev & Emerging Tech (3)
- IT ELEC 3: Web Systems & Tech (3)

**1st Semester (18 units):**
- IT 311: Advanced DB Systems (3)
- IT 312: Networking 2 (3)
- IT 313: System Integration (3)
- IT 314: Info Security 1 (3)
- IT BA 1: Fundamentals of Business Analytics (3) *Specialization
- IT BA 2: Enterprise Data Management (3) *Specialization

**2nd Semester (18 units):**
- IT GE ELEC 5: Multicultural Education (3)
- IT 321: Info Security 2 (3)
- IT 322: Social & Professional Issues (3)
- IT 323: Capstone 1 (3)
- IT BA 3: Analytics Modeling (3) *Specialization
- IT BA 4: Analytics Tools (3) *Specialization

#### Year 4: Capstone & Practice (24 units, 6 courses)

**1st Semester (15 units):**
- IT GE ELEC 6: Leadership & Management (3)
- IT 411: System Admin & Maintenance (3)
- IT ELEC 4: HCI 2 (3)
- IT 412: Capstone 2 (3)
- IT BA 5: Analytics Application (3) *Specialization

**2nd Semester (9 units):**
- IT 421: Internship/OJT (9, 486 hours minimum)

### Prerequisites System

**Year 1 Prerequisites:**
- IT 121 ← IT 112
- IT 122 ← IT 112
- PE 2 ← PE 1
- NSTP 2 ← NSTP 1

**Year 2 Prerequisites:**
- IT 211 ← IT 121
- IT ELEC 1 ← IT 121
- IT ELEC 2 ← IT 121
- IT 221 ← IT 121
- IT 222 ← IT 211, IT 123
- IT 223 ← IT ELEC 1
- IT 224 ← IT ELEC 1, IT ELEC 2
- PE 4 ← PE 1, PE 2, PE 3

**Year 3 Prerequisites:**
- IT 226 ← IT 221
- IT 311 ← IT 221
- IT 312 ← IT 222
- IT 313 ← IT 224
- IT 314 ← IT 224
- IT 321 ← IT 314
- IT 322 ← GEC 7
- IT 323 ← IT 226, IT 314
- IT BA 3 ← IT BA 1
- IT BA 4 ← IT BA 2

**Year 4 Prerequisites:**
- IT 411 ← IT 321
- IT 412 ← IT 323
- IT BA 5 ← IT BA 2, IT BA 3

---

## Technical Stack & Installation

### Required Technologies

**Backend:**
- PHP 7.4 or higher
- MySQL/MariaDB 5.7+

**Frontend:**
- HTML5
- CSS3
- JavaScript (Vanilla)
- jQuery optional

**Server:**
- Apache 2.4+
- XAMPP (development)

### Installation Steps

1. **Database Setup:**
   ```sql
   CREATE DATABASE db_sched;
   USE db_sched;
   mysql -u root db_sched < database_schema.sql
   ```

2. **Configuration:**
   - Edit `config.php` with database credentials
   - Set up mail server details
   - Configure system paths

3. **File Permissions:**
   - Set appropriate read/write permissions
   - Create upload directories
   - Set cache directories

4. **Initial User:**
   - Create admin user account
   - Set up system settings
   - Configure backup schedule

### Directory Structure

```
project_root/
├── admin/
│   ├── dashboard.php
│   ├── colleges.php
│   ├── courses.php
│   ├── facult.php
│   ├── students.php
│   ├── grades.php
│   └── ... (other admin modules)
├── faculty/
│   ├── dashboard.php
│   ├── courses.php
│   ├── grades.php
│   └── schedule.php
├── student/
│   ├── dashboard.php
│   ├── courses.php
│   ├── grades.php
│   └── schedule.php
├── includes/
│   ├── header.php
│   ├── footer.php
│   ├── navbar_admin.php
│   ├── security.php
│   └── curriculum.php
├── assets/
│   ├── style.css
│   └── script.js
├── config.php
├── login.php
├── logout.php
├── index.php
└── database_schema.sql
```

---

## Security Features

### 1. Authentication Security

- **Password Hashing:** Using bcrypt/PHP password_hash()
- **Session Management:** Secure session handling
- **HTTPS Support:** SSL/TLS encryption
- **Login Attempts:** Failed login logging and limiting
- **Password Policy:** Minimum length, complexity requirements

### 2. Data Protection

- **SQL Injection Prevention:** Prepared statements, parameterized queries
- **XSS Prevention:** Input sanitization, output encoding
- **CSRF Protection:** Token validation
- **Data Encryption:** Sensitive data encryption at rest
- **Backup Encryption:** Encrypted database backups

### 3. Access Control

- **Role-Based Access Control (RBAC):** Admin, Instructor, Student
- **Function-Level Authorization:** Operation-specific permissions
- **Data-Level Security:** Row-level access control
- **Session Timeout:** Automatic logout on inactivity

### 4. Audit & Compliance

- **Activity Logging:** All user actions logged
- **Audit Trail:** Detailed change history
- **Compliance Reports:** HIPAA/FERPA compliance support
- **Data Retention:** Archive policies

### 5. System Security

- **Regular Updates:** Security patches applied
- **Vulnerability Scanning:** Regular security audits
- **Penetration Testing:** Annual security testing
- **Incident Response:** Security incident procedures

---

## API Endpoints

### Authentication Endpoints

**POST /api/login**
```
Request: {username, password}
Response: {user_id, role, token, message}
```

**POST /api/logout**
```
Request: {token}
Response: {message}
```

### Course Endpoints

**GET /api/courses**
```
Response: [{course_id, course_code, course_name, units, ...}]
```

**GET /api/courses/{id}**
```
Response: {course_id, course_code, course_name, prerequisites, ...}
```

**POST /api/courses**
```
Request: {course_code, course_name, units, ...}
Response: {course_id, message}
```

### Student Endpoints

**GET /api/students**
```
Response: [{student_id, first_name, last_name, student_number, ...}]
```

**GET /api/students/{id}/courses**
```
Response: [{course_id, course_name, section_id, grade, ...}]
```

**GET /api/students/{id}/grades**
```
Response: [{course_name, midterm, final, overall, grade_letter, ...}]
```

### Faculty Endpoints

**GET /api/faculty**
```
Response: [{instructor_id, first_name, last_name, email, ...}]
```

**GET /api/faculty/{id}/sections**
```
Response: [{section_code, course_name, students_count, ...}]
```

**POST /api/faculty/{id}/grades**
```
Request: {student_id, course_id, midterm, final, remarks}
Response: {message}
```

### Schedule Endpoints

**GET /api/schedule**
```
Response: [{section_id, course_name, time, room, ...}]
```

**GET /api/schedule/conflicts**
```
Response: [{conflict_id, description, ...}]
```

---

## Troubleshooting

### Common Issues and Solutions

#### 1. Login Issues

**Problem:** Cannot login
**Solutions:**
- Verify database connection
- Check user credentials
- Clear browser cache/cookies
- Check account active status
- Verify password not expired

**Problem:** Session expires too quickly
**Solutions:**
- Adjust session timeout in settings
- Check server time settings
- Verify cookie settings
- Check browser cookie support

#### 2. Database Issues

**Problem:** Database connection failed
**Solutions:**
- Check MySQL service status
- Verify connection credentials
- Check database name
- Verify user permissions
- Check server firewall rules

**Problem:** Slow database queries
**Solutions:**
- Check database indexes
- Run OPTIMIZE TABLE
- Check query performance
- Monitor server resources
- Archive old data

#### 3. Schedule Conflicts

**Problem:** Cannot create schedule
**Solutions:**
- Check room availability
- Verify instructor availability
- Check student capacity
- Verify time slot availability
- Check for system conflicts

#### 4. Grade Entry Issues

**Problem:** Cannot enter grades
**Solutions:**
- Verify course/section enrollment
- Check permission level
- Verify student enrollment
- Check grade scale settings
- Verify semester is active

#### 5. Enrollment Issues

**Problem:** Student cannot enroll
**Solutions:**
- Verify prerequisites completion
- Check enrollment status
- Verify section capacity
- Check enrollment deadline
- Verify student status

#### 6. Report Generation Issues

**Problem:** Reports not generating
**Solutions:**
- Check file permissions
- Verify PDF library installed
- Check memory limits
- Verify data exists
- Check export format

### Performance Optimization

- Enable database query caching
- Optimize server resources
- Archive historical data
- Regular database maintenance
- Implement pagination
- Cache frequently accessed data

### System Monitoring

- Monitor CPU usage
- Monitor memory usage
- Monitor disk space
- Monitor query times
- Monitor error logs
- Monitor backup status

---

## Support & Resources

### Documentation Files
- `DATABASE_SCHEMA_GUIDE.md` - Database structure (14 tables, 55 courses)
- System configuration guides
- User manuals for each role
- API documentation
- Security guidelines

### Getting Help

1. Check troubleshooting section
2. Review system logs
3. Contact system administrator
4. Review documentation
5. Submit support ticket

### System Updates

The system receives regular updates for:
- Security patches
- Performance improvements
- Feature additions
- Bug fixes
- Curriculum updates

---

**Version:** 2.0  
**Last Updated:** March 28, 2026  
**Status:** ✓ Production Ready  
**Support:** Contact System Administrator
