- Add StudentCsvEnrollmentModal for bulk-adding multiple enrollment
records across school years for one specific student via CSV input
- CSV format: School Year, Grade Level, Section, Track/Strand
- Features: editable monospace text area, Fill Example, Copy Template,
file upload (.csv/.txt), and live backend progression verification
- Show row-by-row verification results with valid/error status chips
and actionable error messages (section suggestions, available years)
- Admin-only: hidden from teacher role via _isTeacher guard
- Wire Bulk Enroll (CSV) button in edit_student_modal.dart to
StudentCsvEnrollmentModal passing studentId, studentName, studentLrn
- Add Bulk CSV shortcut button in edit_enrollment_modal.dart Current
Enrollments header for admins
- Backend: POST /api/students/:id/verify-enrollments for live per-row
progression and section existence validation
- Backend: POST /api/students/:id/bulk-enrollments for transactional
batch enrollment creation with activity logging and socket events
- Add verifyStudentEnrollments and bulkAddStudentEnrollments repository
methods in student_repository.dart
- Prevent RenderFlex bottom overflow in yearly comparison chart with dynamic height clamping
- Harmonize Missing Documents, Grade Compliance, Status Donut, and Yearly Comparison cards to 480px on desktop
- Optimize logo assets to webp across login, splash, and layout navbars
- Enable resource shrinking and minification in Android release build
- Remove obsolete frontend Excel templates from assets and pubspec
- Hide school year and status filters in student filter dialog on Enrolled tab\n- Remove 'Enrolled' status filter option on All Students tab\n- Sync studentViewTabProvider and studentActiveFilterCountProvider across desktop and mobile layouts
- Fix Android PDF and report export permission denied by adding adaptive storage permission handling (MANAGE_EXTERNAL_STORAGE on Android 11+ and legacy storage on Android 10) and multi-tier fallback to app-specific external storage in DownloadService\n- Update DepEd Transparency Board PDF export and reports export to use DownloadService.saveBytes()\n- Make Settings screen About, Support, and System Information responsive across screen widths\n- Update Student and User screen top headers to segmented tabs design and tighten mobile drawer edge touch area
- Purge heavy and unused packages (syncfusion_flutter_pdfviewer, excel, sheetifye, cupertino_icons, image_picker, lottie, flutter_holo_date_picker, flutter_speed_dial)
- Delegate PDF and spreadsheet preview to system default viewers via open_filex
- Replace excel report generation with pure Dart UTF-8 BOM CSV generator
- Configure NDK debug symbol stripping in build.gradle.kts
- Align Students screen Enrolled/All Students tab switcher with Archives segmented tab design
- Update screen, settings card, and dashboard titles to 'Academic & Class Management'
- Clean and balance Academic Structure toolbar for mobile and desktop
- Remove redundant buttons on section cards in favor of interactive adviser chip
- Modernize teacher action button to OutlinedButton.icon 'Sections'
- Add responsive bulk academic structure import support across backend and frontend
- Reports: Migrate DepEd Transparency Board PDF export to backend Puppeteer service with enlarged layout and per-section downloads
- Settings: Replace dynamic grace period days input with cutoff date picker and calculated days preview; separate schedule date pickers
- Documents: Default requirements section to collapsed/closed state in upload OCR modal with pulsing border container
- Fix contrast on Auto-Graduation trigger button and ensure desktop responsiveness across report buttons
- Add email deliverability verification (MEV) to forgot password flow (lookupResetOptions & sendEmailOtp)
- Validate recipient email format and verify deliverability before sending reset password link in user management
- Convert all backdrops, group photos, and solo avatars to WebP format, drastically reducing asset footprint from >60MB to ~4.6MB
- Add auto-advancing slide preview carousel with 2s cooldown, navigation buttons, and wrapping to Capstone Members screen
- Update Capstone member emails and add individual solo avatar photos
- Split Android release into TIS_RMS_32bit, TIS_RMS_64, and TIS_RMS_Universal APKs in GitHub Actions and INSTALL.md
- Prioritize universal APK in AppUpdateService and update fallback labels
- Refactor settings academic collapse to 'Academic & Graduation' with automatic active school year card and relocated grace period
- Fix persistent loading indicators on student edit/add modals and list background
- Fix DepEd Transparency Board PDF report subheader layout to prevent title and period collision
- Update AGENTS.md backlog with document scanner and PDF processing items