82 Commits
Author SHA1 Message Date
ssbg04 502b2ea9f1 feat(dashboard): isolate needs attention into dedicated endpoint and provider 2026-10-11 20:13:27 +08:00
ssbg04 2527cccc9f feat(dashboard,settings): sync needs attention operational data, report issue modal, and ip locations 2026-10-11 17:27:15 +08:00
ssbg04 f5838f09b5 feat(students): move add button to tabs, fix search unfocus, restore bulk enroll dialog, and clean up profile modal 2026-10-09 10:07:40 +08:00
ssbg04 489e87834e feat(student-profile): implement Priority 1 operational hub with tabs, inline document workflows, and audit history 2026-10-09 08:45:05 +08:00
ssbg04 5abd5a812c feat: server discovery, tunnel fallback, and update configs 2026-10-09 01:31:10 +08:00
ssbg04 a8473c23b7 feat(students): add single-student multi-enrollment CSV import modal
- 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
2026-10-04 13:48:53 +08:00
ssbg04 0058decaef feat: enhance teacher permissions, folder filtering, and bulk enrollment verification 2026-10-04 11:24:07 +08:00
ssbg04 e6e8188312 feat(reports): refine filters and export layout, add backend Excel export, optimize logo to webp 2026-10-02 20:30:15 +08:00
ssbg04 b04981d7fb feat(system): implement socket.io real-time sync, admin passwords, ocr adjustments, and shortcut fixes 2026-10-02 10:17:44 +08:00
ssbg04 c6d5607811 perf(android): enable R8 shrinking, ProGuard rules, and downscale image assets 2026-09-28 20:58:22 +08:00
ssbg04 bd2a8acbfe feat(settings): clean academic setup buttons and rename screen to Academic & Class Management
- 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
2026-09-27 02:05:47 +08:00
ssbg04 a9c2ab0da5 fix(setup): make bulk academic import responsive and fix runtime string indexing error 2026-09-27 01:30:57 +08:00
ssbg04 13bbdf9e26 feat(bulk-import): add live CSV input, format guides, and validation preview for students and academic structure 2026-09-27 01:05:59 +08:00
ssbg04 7faade70a9 feat(reports,settings,docs): server-side PDF export, cutoff date picker, and UI refinements
- 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
2026-09-26 18:32:44 +08:00
ssbg04 71526fe61e fix(reports): resolve Windows layout overflows and refine UI
- Fix 1px bottom overflow on Overall Compliance KPI card by adjusting height and padding
- Fix text truncation for Pending Docs KPI card
- Fix 49px bottom overflow on Students Per Year card by adjusting container and chart heights
- Fix LayoutBuilder inside IntrinsicHeight issue on desktop report charts
- Refine security settings, audit trail platform tracking, and document handling
- Clean up unused conversion providers and LibreOffice service
2026-09-25 19:04:23 +08:00
ssbg04 13abad6563 feat(security,audit): fix platform tracking for history and settings, collapse logged-in devices in security tab 2026-09-25 09:34:14 +08:00
ssbg04 689dbc48e7 fix: self-deactivation, UI overflow, Open With, archive nav, schedule modal
Settings - Delete Account -> Self Deactivate:
- backend: add POST /api/auth/self-deactivate (immediate, no email link)
  Guards against last-admin and hidden super-admin. Revokes FCM tokens,
  sends notification email, logs activity
- auth.js route: add /self-deactivate route
- auth_repository.dart: add requestSelfDeactivation()
- auth_provider.dart: add requestSelfDeactivation() (calls logout() after)
- settings_screen.dart: 2-step _handleDeactivateAccount: Step 1 confirm,
  Step 2 type DEACTIVATE. Danger zone card updated to deactivation theme

Report screen - compliance filter button label overflow:
- Wrap label Text in Flexible to ellipsize instead of clip

Settings - Edit Schedule Dates modal button overflow:
- Column layout on narrow screens so buttons are never squished

Document screen - Open With not working on Windows:
- Use openwith.exe (Windows 8+) with fallback to rundll32 OpenAs_RunDLL

Windows sidebar - Archive tab:
- Move Archives from ACCOUNT group to OVERVIEW group
2026-09-21 17:51:33 +08:00
ssbg04 1a20994749 feat: document versioning, templates, ZIP backup/restore, and Open/Edit workflow
Backend:
- schema.js: add document_templates, template_versions, document_versions tables;
  migrate documents with template_id/template_version_id columns;
  auto-seed Version 1 for all 190 existing documents
- templateController.js (NEW): full CRUD + file upload/download for templates
  and template versions
- templates.js route (NEW): /api/templates endpoints
- documentController.js: add getDocumentVersions, uploadDocumentVersion,
  downloadDocumentVersion; uploadDocument now seeds Version 1 on creation
- documents.js: wire GET /:id/versions, POST /:id/upload-version
- backupController.js: upgrade backup to ZIP archive (DB + student files +
  template files + SHA-256 manifest); restore handles ZIP and legacy .db;
  safety backup taken before every restore
- package.json: add archiver + unzipper dependencies

Frontend:
- template_model.dart (NEW): DocumentTemplateModel + TemplateVersionModel entities
- document_version_model.dart (NEW): DocumentVersionModel entity
- template_repository.dart (NEW): Dio-based template API client
- document_repository.dart: add getDocumentVersions, uploadDocumentVersion,
  downloadDocumentVersion methods
- document_preview_modal.dart: add Open / Open With (Windows rundll32
  OpenAs_RunDLL / Android chooser) / Edit (download-temp -> open -> upload
  prompt) / Upload New Version (FilePicker) / Version History actions
- document_version_history_sheet.dart (NEW): draggable bottom sheet listing
  all document versions with per-version Preview + Download
- file_folder_card.dart: add Open With, Edit, Upload New Version, Version
  History items to context menu
- documents_screen.dart: wire open_with, edit, upload_version, version_history,
  restore action cases; import version history sheet

Bugfix:
- student_profile_modal.dart: remove enrollment.status access that caused
  NoSuchMethodError (enrollments table has no status column)
2026-09-21 12:55:58 +08:00
ssbg04 69b4879ac2 feat(dashboard,ui): overhaul dashboard KPIs, audit trail tab, responsive controls, and settings
- Remove recent activities and user history from dashboard; relocate to dedicated History tab
- Fix Document Breakdown overflow and rebalance Bento KPI grid layout
- Fix Android overflow on student profile Edit Details button
- Simplify grid view cards in documents and archives screens with minimal folder styling
- Fix transparency board filter contrast and export button styling in reports
- Default auto-update enrollment to off, add grace period input, and fix settings danger zone
2026-09-19 02:26:49 +08:00
ssbg04 78035685a3 fix(desktop): fix Windows 10 crash vectors across screens, dialogs, and audio 2026-09-18 12:03:00 +08:00
ssbg04 4d0ea25506 feat(docs): upload modal requirements strip with accurate status, collapsible list, and JHS/SHS tags
- Fix requirements strip to use missingRequirementsProvider (per-student) instead
  of global documentRequirementsProvider, so Completed/Archived/Needed states
  are accurately reflected for each student
- Fix dropdown 'Select Document Type' status labels (was always [Completed]);
  now correctly shows [Needed], [Archived], or [Completed] using ID-based lookup
  from missingRequirementsProvider
- Add collapsible/expandable requirements strip with AnimatedCrossFade and
  chevron toggle; shows mandatory-needed badge count in collapsed header
- Split needed chips into Mandatory (red) and Optional (orange) sections;
  add Archived (blueGrey) section distinct from Completed (green)
- Add JHS/SHS category tag on each chip (muted grey badge)
- Simplify chip styling to neutral background/border; color only on status icon
- Remove tap-to-assign chip interaction; chips are now display-only
- Clean up unused _isRequirementMissing, _isRequirementArchived, and
  _assignRequirementToEntry methods
- Update AGENTS.md: move completed Document Screen tasks into commented section
2026-09-18 01:02:57 +08:00
ssbg04 6fa533d530 feat(ui): redesign student cards, responsive pagination, and fix doc status sheet button 2026-09-17 20:19:06 +08:00
ssbg04 05e11068f4 feat: add account self-deletion, hidden super admin, and selection morph animations 2026-09-17 09:26:56 +08:00
ssbg04 d8dd86ba04 feat: dynamic file upload limit per document requirement (frontend & backend) 2026-09-10 17:29:01 +08:00
ssbg04 01d636ea19 feat: implement roadmap updates, archive purge removal, and backend notifications/email resilience 2026-09-10 17:09:13 +08:00
ssbg04 fa0df9ed40 feat(dashboard): show document status distribution count over total requirements 2026-09-08 20:36:17 +08:00
ssbg04 661ba275c2 feat(users): implement admin email password reset with expiration, web reset form, and push notifications 2026-08-31 23:25:46 +08:00
ssbg04 8b487b6248 feat(students): standardize on standard dash '-' for non-4Ps, grade-section, and profile fallbacks 2026-08-31 22:16:13 +08:00
ssbg04 4236986d4e feat(reports): convert 4Ps beneficiaries to comparative previous vs active year table with JHS/SHS separation and remarks 2026-08-31 21:38:47 +08:00
ssbg04 5430dbcb63 feat: resolve highest grade level, prevent enrollment downgrades, format academic year XXXX-XXXX, and add Windows form margins 2026-08-31 20:35:09 +08:00
ssbg04 707082c6dd feat(reports): add inactive status to yearly comparison, fix Windows layout overflow, and remove storage chip 2026-08-30 20:45:33 +08:00
ssbg04 3dc10845e0 feat: add academic year filter to DepEd transparency board and update dialog title 2026-08-30 20:16:47 +08:00
ssbg04 175b959eac fix(system): enhance student folders scoping, modal responsive sizing, reports scrollbar and clean password reset requests 2026-08-30 15:06:18 +08:00
ssbg04 f2c259891d feat: show missing requirements on dashboard student hover, fix student grade/sec resolution, and scope teacher stats to assigned sections 2026-08-30 14:05:10 +08:00
ssbg04 cedf7f3d00 feat(dashboard): active academic year KPI overhaul, document duplicate prevention, suffix cleanup, and JHS/SHS filter separation 2026-08-30 02:18:43 +08:00
ssbg04 3a91bfa750 feat(network): prioritize LAN connection with Tunnel fallback, add Disconnected dialog and Still Not Connected retry flow 2026-08-30 01:10:42 +08:00
ssbg04 ee47158e74 feat(auth): add self-service email OTP password reset with Nodemailer and Gmail SMTP 2026-08-30 00:29:36 +08:00
ssbg04 61a1135750 feat(documents): add accurate file size handling and uploader metadata to properties dialog 2026-08-23 00:18:14 +08:00
ssbg04 e100d6bdf4 feat: add headless LibreOffice Excel to PDF conversion for Windows and Android 2026-08-21 15:58:43 +08:00
ssbg04 8aaefb2aa4 feat(reports): add inactive card, update student status breakdown donut, and fix summary banner width 2026-08-18 21:00:19 +08:00
ssbg04 0c859d7142 feat(fcm): support firebase-admin v14 modular API and google-services integration 2026-08-18 15:35:47 +08:00
ssbg04 c5998468b7 feat: archives file menu, copy (1) naming, excel to pdf, and OCR enrollment validation
- archives: per-file menu (preview/print/download) via icon, right-click, long-press
- documents: copy renames to "name (1).ext" with incrementing collision handling
- documents: convert xls/xlsx/csv to multi-sheet PDF saved in student folder (excel kept)
- students: OCR enrollment scan is review-only with 7-12 grade gate and manual validation modal
- add student: linear OCR progress, SF9/SF10 grade 7-12 validation with auto-fill enrollment
2026-08-08 00:57:04 +08:00
ssbg04 8e32bbe5e1 feat(frontend): green window title bar, login pre-fill, monochrome multi-select, responsive enrollments, and 15 limit archive pagination 2026-08-07 19:57:30 +08:00
ssbg04 a03f85604e feat(students/documents): add ocr scan, enrollment log format, select all, and dark theme updates 2026-08-07 18:15:48 +08:00
ssbg04 ef40cde503 feat: enhance Print Modal with history tab, student details, spreadsheet error dialog, and refine UI buttons/menus 2026-08-01 17:02:58 +08:00
ssbg04 f4d5c68481 feat(students): add bulk OCR import for SF9/SF10 and remove DOB suggestion dropdown in add/edit modal 2026-08-01 15:51:03 +08:00
ssbg04 3f1bf688c5 feat(ui): implement tabbed modal for update student record with dedicated enrollment management actions 2026-08-01 14:59:21 +08:00
ssbg04 c10b87584b feat(students): add LRN filter modal and column title sort dropdowns for LRN, Name, Grade & Sec, and Doc Status 2026-08-01 02:45:04 +08:00
ssbg04 bf1e27426a feat: implement active academic year schedule, auto-graduation service, and settings screen UI updates 2026-08-01 02:29:32 +08:00
ssbg04 03eda282bf feat: add OCR and Excel SF9/SF10 enrollment auto-update with teacher validation and semester deduplication 2026-08-01 00:25:03 +08:00