Stage 119 — Complete Portal Consolidation

This release consolidates the authenticated PWA into one responsive portal covering the existing API modules: dashboard, pupils, parents, staff, classes, subjects, attendance, fees, results, timetable, announcements, events, classwork, assignments, lesson notes, e-library, virtual classes, messages, notifications, search, sessions/terms, school information, profile and account security.

It preserves the existing legacy application and prior Stage 118 files, restores the shared security helper required by several API endpoints, fixes class search with prepared statements, and moves the PWA install start URL to the complete portal.

Security direction follows OWASP ASVS principles: authentication/authorization remains server-side, API data is not cached, and database search uses parameterized queries.
