http://localhost:8080/printables_reports/badge_form (add position column to teacher_class table) fixed
http://localhost:8080/administrator/class_assignment (add position column to teacher_class table) fixed

Teacher Class assignment (Access Denied) fixd
invoice_management (Access Denied) fixd
Login Activity (Access Denied) fixd
User List (Access Denied) fixd
Permission Management (Access Denied) fixd

Score management is not editable



#######################################TO_FIX#########################################
attendance: 
teacher side submit attendance once and add message saying you cannot change attendance after submitting  (fixed)

uppercase  first letter
icon books menu
fix books category display
registration date is a datetime but the db has only date no time?

office supplies opens new tab why

attendance managemnt side add 'add' button to add new entry for 'late' students (fixed)
staff view is not updating 


scores:
$this->semesterScoreService->recalc($studentId, $classSectionId, $schoolYear, $semester); (this line is used in attendance to calculate scores, need to check it when fixing scores)
fix score update managment side

###############################################################################
*Day 1 readiness*
DROP TABLE `final_exam`, `final_score`, `homework`, `midterm_exam`, `participation_score`, `project`, `quiz`, `score_comments`, `semester_scores`;
-- Multi-entry tables
CREATE TABLE IF NOT EXISTS homework_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL, -- 0..100
  notes VARCHAR(255) NULL,
  created_by INT UNSIGNED NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS quiz_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL,
  notes VARCHAR(255) NULL,
  created_by INT UNSIGNED NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS project_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL,
  notes VARCHAR(255) NULL,
  created_by INT UNSIGNED NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Single-entry tables (one row per term)
CREATE TABLE IF NOT EXISTS participation_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL,
  updated_by INT UNSIGNED NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uniq_participation (student_id, class_section_id, school_year, semester)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS midterm_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL,
  updated_by INT UNSIGNED NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uniq_midterm (student_id, class_section_id, school_year, semester)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS final_scores (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id INT UNSIGNED NOT NULL,
  class_section_id INT UNSIGNED NOT NULL,
  school_year VARCHAR(16) NOT NULL,
  semester ENUM('Spring','Fall') NOT NULL,
  score DECIMAL(5,2) NOT NULL,
  updated_by INT UNSIGNED NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uniq_final (student_id, class_section_id, school_year, semester)
) ENGINE=InnoDB;







Larbi:
1- Payment, status changed to enrolled, email goes with all payment details (fixed)
6- Make php translation of sticker routine from vb excel (fixed)
3- Classroom prep: add adjustables (only on tables), show relevant info on paper (white board, trash bin, small tables, large tables, small chairs, regular chairs, teacher chairs), ignore 0 entries. + tie everything to inventory (fixed)

#Extra charges fix invoice pdf display and make all transaction are visible + fix the date of those transactions
#email does not reflect the discount
#Refunds should automaticallu scan for negative balance

2- Inventory + Assigning books to students tested and working
4- Train Amin on inventory + Grade box labeling
5- Contact Aziz to make layout for classes once sections are final
7- Fix grading + notification for entering grading + item not assigned if hw/test… not done that week.
8- Tardy slips readiness (automated printing)
9- Laptops readiness (homepage: alrahmaisgl) + 4 laptops
10- Print badges

Amin:
1- Enter categories of books (including teachers books)
2- Print grade labels + classes layout
3- Charge laptops

Outmane:
1- Process remaining enrollments
2- Assign students to class sections
3- Check inventory excel + Buy books
4- Test features (classroom prep)
5- Continue presentation



















################################################################################

Work to Do in production:
dump roles table with data to add dynamic role names.
dump nav_items table with data to add new dynamic admins navbar
dump role_permissions table data 
dump permission table
update teacher_class table