Commit Graph
100 Commits
Author SHA1 Message Date
ssbg04 eddb5da323 feat(installer): optimize Windows installer size to 20.6MB and include automated .NET silent installer 2026-08-19 01:18:47 +08:00
ssbg04 d9ce190ead docs: update INSTALL.md and TIS_RMS_Client.iss for Windows release and Inno Setup configuration 2026-08-19 01:06:27 +08:00
ssbg04 4d969ba0a5 chore: sync documentation and splash screen improvements 2026-08-19 00:59:35 +08:00
ssbg04 e60e671171 fix(ui): apply universal AppButtonLoader with zero-padding to eliminate oblong stretching and 2px overflow 2026-08-19 00:56:38 +08:00
ssbg04 8eadef3f92 fix(ui): ensure all button loading indicators render as perfect circles with SizedBox.square and Center 2026-08-19 00:45:29 +08:00
ssbg04 d863b18f3f feat(login): add frosted glass blur and translucent animated backdrop to login section 2026-08-19 00:34:55 +08:00
ssbg04 6b3152a50c feat(splash): add adaptive backdrop and entertaining loading words to splash animation 2026-08-19 00:31:10 +08:00
ssbg04 acdc9c04a2 feat(ui): apply Talisay Integrated School custom backdrop-2 for landscape/portrait and light/dark modes 2026-08-19 00:20:13 +08:00
ssbg04 67ea480a14 feat(ui): add adaptive backdrop assets and support for light/dark mode and landscape/portrait orientation 2026-08-19 00:09:19 +08:00
ssbg04 9d7609cf36 feat(reports): make secondary status cards (active students to 4Ps) render 6 horizontal in windows desktop app 2026-08-18 23:49:55 +08:00
ssbg04 03bcde4805 fix(students): initialize default grade level to 7 and ensure immediate section selection in add student modal 2026-08-18 23:37:21 +08:00
ssbg04 bec1e4fba7 feat(ui): update recent activities, student modals, documents filters, and settings theme button 2026-08-18 23:13:08 +08:00
ssbg04 41d5fb3459 feat(release): add flutter build rule, INSTALL.md, and Inno Setup Windows installer script 2026-08-18 21:54:37 +08:00
ssbg04 5b0b2db0cb fix(dashboard): fix 1px card overflow on Android and optimize stat card flex layout 2026-08-18 21:27:03 +08:00
ssbg04 e87a771a02 feat(network): scan LAN first with tunnel domain fallback (https://tis-rms.cc.cd/api) and preserve credentials on failure 2026-08-18 21:13:58 +08:00
ssbg04 c8f215eaaf fix(transparency): add extra top margin, top titles padding, and expanded leftTitles for enrollment bar chart 2026-08-18 21:02:21 +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 2e370a5faf fix(reports): enhance bar chart margin, touch tooltips, and make card rates bigger and responsive 2026-08-18 20:49:30 +08:00
ssbg04 305ce1a64f fix: reset compliance pagination rows per page to 10 on reopen and view switch 2026-08-18 20:41:26 +08:00
ssbg04 27a92e1614 fix: type casting on enrollment reduce in edit student modal 2026-08-18 20:34:19 +08:00
ssbg04 8eda711bce fix: hide graduated status for ineligible students and avoid false update success message 2026-08-18 20:32:05 +08:00
ssbg04 967d37161d fix: graduation status validation check across enrollment history and explicit rejection handling 2026-08-18 20:28:34 +08:00
ssbg04 6070ffce0d fix: single OCR modal popup on add student, sync status revert on invalid graduation, clean transparency titles 1-3, and student list rows per page dropdown with clean legend 2026-08-18 20:20:37 +08:00
ssbg04 e538710a34 fix(dashboard): only count active users (is_active = 1) in admin dashboard stats 2026-08-18 20:08:02 +08:00
ssbg04 171afbd72b fix(reports): require all mandatory documents across all enrolled school tiers (JHS/SHS) for student compliance 2026-08-18 20:03:45 +08:00
ssbg04 255fe61811 fix(reports): enforce mandatory docs filter and teacher scoping in stats API; add color guide tips banner on top of KPI cards 2026-08-18 19:58:56 +08:00
ssbg04 7084d5ab65 fix(syntax): add missing closing brace in updateStudent 2026-08-18 19:49:47 +08:00
ssbg04 e707842a5f fix: single enrollment on OCR student add, strict Graduated status validation, transparency bar graph spacing/mobile scroll, and desaturated dark mode status colors 2026-08-18 19:48:03 +08:00
ssbg04 bc02d86a17 fix(enrollment): strictly prevent duplicate enrollments in the same academic year 2026-08-18 19:23:55 +08:00
ssbg04 4df929e1df fix(students): use array-style params for better-sqlite3 compatibility 2026-08-18 19:16:28 +08:00
ssbg04 497a38d405 fix: use COUNT DISTINCT for enrollment/4Ps counts, fix student year filter param ordering 2026-08-18 19:12:30 +08:00
ssbg04 1220b79222 fix(students): year filter now joins on enrollment IN that year, not globally latest — fixes missing students when filtering by school year 2026-08-18 19:04:07 +08:00
ssbg04 a0ea82d7db reports: remove tabs from transparency board, stack sections vertically, make tables responsive, simplify compliance & analytics language 2026-08-18 18:56:21 +08:00
ssbg04 7ff1d2aaa4 docs: mark android app push notification task as completed 2026-08-18 18:40:22 +08:00
ssbg04 b4b4df9d1f feat(tunnel): configure Cloudflare tunnel runner script with token 2026-08-18 18:24:37 +08:00
ssbg04 14951a31a7 feat(tunnel): replace localtunnel with Cloudflare Tunnel (zero sign-in, fast edge routing) 2026-08-18 17:18:17 +08:00
ssbg04 5f1a2789a4 feat(backend): add localtunnel dependency and start_tunnel script 2026-08-18 17:05:17 +08:00
ssbg04 e8af7c6a2a feat(network): add Bypass-Tunnel-Reminder header to support localtunnel / tunnel proxy endpoints 2026-08-18 17:03:26 +08:00
ssbg04 dd2d51e1ce fix(notifications): prevent duplicate pop-up banner when launching app from background notification 2026-08-18 16:50:17 +08:00
ssbg04 33fd2d32a9 fix(windows): guard NotificationService against flutter_local_notifications LateInitializationError on Windows 2026-08-18 16:26:32 +08:00
ssbg04 94ef3ddb9f fix(flutter): guard FirebaseMessaging against LateInitializationError with Firebase.apps.isEmpty check 2026-08-18 16:23:56 +08:00
ssbg04 f5f29c95d8 fix(flutter): lazy-access FirebaseMessaging only on mobile to prevent LateInitializationError on Windows desktop 2026-08-18 16:21:34 +08:00
ssbg04 93c737e526 chore(windows): silence CMake deprecation warning by setting CMAKE_POLICY_VERSION_MINIMUM to 3.10 2026-08-18 16:19:31 +08:00
ssbg04 26a5d4be60 fix(notifications): remove redundant foreground alerts, remove persistent sync notification, and synchronize LAN/FCM deduplication 2026-08-18 16:17:09 +08:00
ssbg04 1a063ab5c2 chore: remove backend/uploads/ from git tracking 2026-08-18 16:07:11 +08:00
ssbg04 be8a58b178 chore: remove backend/data/ from git tracking and ignore entire folder 2026-08-18 16:05:16 +08:00
ssbg04 030322d496 chore: untrack google-services.json from git and add to gitignore 2026-08-18 16:03:55 +08:00
ssbg04 5ba89a5fc1 docs: update AGENTS.md and gitignore 2026-08-18 16:02:07 +08:00
ssbg04 746f65338b fix(windows): resolve CMake compatibility and PDB locking errors for Windows desktop build 2026-08-18 15:47:02 +08:00
ssbg04 0b121dd984 feat(fcm): real-time audience-targeted high priority push notifications 2026-08-18 15:37:29 +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 0725f4ecf9 feat(flutter): FCM real-time push notifications
- firebase_core + firebase_messaging added to pubspec.yaml
- google-services gradle plugin wired in settings.gradle.kts + app/build.gradle.kts
- fcm_service.dart: initialize FCM, handle foreground messages, register token with backend
- main.dart: Firebase.initializeApp (graceful no-op until google-services.json added)
- auth_provider.dart: FcmService.registerToken() on login and auto-login
- AndroidManifest.xml: FCM default notification channel metadata
2026-08-18 13:56:29 +08:00
ssbg04 cb484051e3 feat(backend): FCM push notifications via firebase-admin
- fcmService.js: Firebase Admin SDK wrapper with sendToUser/sendToAll
- notificationController: hook FCM fire-and-forget in createNotification
- registerFcmToken endpoint: POST /api/notifications/fcm-token
- schema.js: add fcm_tokens table
- routes/notifications.js: register /fcm-token route
2026-08-18 13:53:00 +08:00
ssbg04 e94eaa63bf fix(android): remove automatic battery optimization ignore request 2026-08-18 13:45:46 +08:00
ssbg04 fa8b101b34 fix(android): guard setExactAndAllowWhileIdle with canScheduleExactAlarms() check
SecurityException crash on Android 12+ when SCHEDULE_EXACT_ALARM special
access not user-granted. Now checks canScheduleExactAlarms() and falls back
to setAndAllowWhileIdle() (inexact, no special permission needed). Both
schedule() and cancel() wrapped in try/catch to prevent future alarm crashes.
2026-08-18 13:37:05 +08:00
ssbg04 281a782b93 fix(android): remove startForegroundService from BootReceiver (crash on boot)
ForegroundService requires a live Flutter engine and cannot be cold-started
from a BroadcastReceiver. flutter_foreground_task handles boot-restart
internally via autoRunOnBoot=true. BootReceiver now only reschedules
the AlarmManager chain.
2026-08-18 13:25:49 +08:00
ssbg04 648280ab45 fix(android): add AlarmManager 2-min background notification polling
- AlarmScheduler.kt: schedules setExactAndAllowWhileIdle every 2 min
- AlarmReceiver.kt: reads FlutterSharedPreferences, polls LAN backend, posts native notifications, self-chains next alarm
- MainActivity.kt: schedule alarm on app open
- BootReceiver.kt: schedule alarm on device reboot
- AndroidManifest.xml: register AlarmReceiver
2026-08-18 13:19:11 +08:00
ssbg04 4306a19d7b fix(android): add BootReceiver.kt (force-add past gitignore) 2026-08-18 13:03:02 +08:00
ssbg04 1f02eb1f26 fix(android): enable push notifications in background/killed state 2026-08-18 13:02:37 +08:00
ssbg04 9aa6e6df2b feat: add dynamic hardware vibration patterns and fix realtime reports compliance data 2026-08-18 12:32:36 +08:00
ssbg04 4487f2872f feat: implement Android Foreground Service for real-time LAN background notifications 2026-08-18 11:29:24 +08:00
ssbg04 f4cb43b29f style: remove background and border from Archives filter button 2026-08-18 10:45:34 +08:00
ssbg04 078c395126 feat: enhance Settings suffix dropdown, Users modal stepper and email autocomplete, and Archives header options 2026-08-18 10:43:09 +08:00
ssbg04 db42cf3050 fix: resolve Sheetifye Excel viewer integration, Riverpod autoDispose type bounds, and Dashboard initState error 2026-08-18 10:30:34 +08:00
ssbg04 93f419f6d1 feat(archives): add context menus, multi-select operations, print list controls, and fix grid view 2026-08-18 10:08:48 +08:00
ssbg04 9e4ed42806 feat(ui): fullscreen preview modal, button refinements, and notification slide fix 2026-08-18 09:46:43 +08:00
ssbg04 006587cb23 feat(archives): convert status dropdown to chips and modernize filter modal 2026-08-17 00:10:03 +08:00
ssbg04 74f4dfff33 fix(documents): responsive filter modal with scrollable section and fixed buttons 2026-08-16 23:23:08 +08:00
ssbg04 14607c15c4 fix(students): dynamic database filter options with cascading resets and clean dropdowns 2026-08-16 23:16:12 +08:00
ssbg04 a7f0b6a66a feat(students): dynamic database filter options with cascading resets and clean dropdowns 2026-08-16 02:16:44 +08:00
ssbg04 57e0c201f8 feat: scope dashboard KPIs to teacher students and restrict teacher actions on documents screen 2026-08-16 02:05:01 +08:00
ssbg04 b57bcffa41 update: 4Ps default color 2026-08-16 01:44:00 +08:00
ssbg04 65c989d747 fix: enrollments tab in student screen dropdowns 2026-08-16 01:05:03 +08:00
ssbg04 314337c443 fix: add ctrl+f search shortcut and format search tooltips with italicized hotkeys across dashboard, students, documents, archives, and users screens 2026-08-14 00:14:33 +08:00
ssbg04 77ee87a6f8 fix(ui): isolate drag and drop bulk import to students screen and update users screen filter header style 2026-08-13 14:32:45 +08:00
ssbg04 98495e91eb fix(ocr): improve SF9 OCR parser with orientation fallback and update settings screen edge fade 2026-08-13 12:14:50 +08:00
ssbg04 e5b02614cc fix: resolve Excel extraction for JHS and SHS SF10 form parsing 2026-08-12 17:19:57 +08:00
ssbg04 acba1b4eb0 fix: resolve OCR parser middle name and extension extraction for bulk add and add student 2026-08-12 16:35:25 +08:00
ssbg04 01605bc8fd fix: remove duplicate variable declaration in documents_screen.dart 2026-08-12 14:03:39 +08:00
ssbg04 1169347893 style: enhance chip text colors contrast and saturation in dark theme 2026-08-12 14:02:23 +08:00
ssbg04 38a0920c05 fix(backend): enhance OCR name parser for compound first names and identical first/last names 2026-08-12 10:10:03 +08:00
ssbg04 214b25092c fix(backend): replace xlsx with exceljs and fix security audit vulnerabilities 2026-08-12 09:24:44 +08:00
ssbg04 e268569eac fix: dark theme color palatte 2026-08-08 23:46:26 +08:00
ssbg04 b5e651dfb2 feat(frontend): complete phase 5 UX polish, skeleton loaders, and accessibility labels 2026-08-08 23:22:39 +08:00
ssbg04 ff00bc4e1b fix(frontend): resolve bracket matching error in documents_screen RefreshIndicator 2026-08-08 23:08:22 +08:00
ssbg04 5a0eb25ad2 feat(frontend): complete phase 4 platform-specific optimizations and accessibility updates 2026-08-08 23:06:48 +08:00
ssbg04 c98fbb6a6e feat(frontend): complete phase 3 screen decomposition and phase 4 platform optimizations 2026-08-08 22:42:40 +08:00
ssbg04 6f2d8865c9 feat(frontend): extract shared UI components and complete SnackBar to dialog migration 2026-08-08 21:51:03 +08:00
ssbg04 2eeb1a153f feat(frontend): implement phase 1 foundation design improvements and theme extensions 2026-08-08 21:25:09 +08:00
ssbg04 911c03d61e feat(frontend): multi/single OCR enrollment review and upload for add student screen 2026-08-08 01:45:28 +08:00
ssbg04 88c470d924 feat(frontend): apply dark theme colors across all reports screen widgets 2026-08-08 01:32:21 +08:00
ssbg04 a723eed805 fix(frontend): drag and drop now works on students and documents screens
- documents: drops accepted on all tabs and inside student folders (was gated to All Documents tab), overlay hint shows anywhere, route guard prevents double modals
- students: added drop zone that opens Bulk OCR Import with the dropped files preloaded
- bulk import dialog: accepts preloadedFiles to seed the queue on open
2026-08-08 01:21:06 +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 2ac3a791ce fix(frontend): improve custom back-button navigation for documents, students, and archives screens 2026-08-07 21:31:54 +08:00
ssbg04 2e182f8301 feat(frontend): add back button prevention and update student multi-select menu design 2026-08-07 20:59:00 +08:00
ssbg04 ec50f31b21 feat(students): update multi select menu design to match document screen 2026-08-07 20:47:02 +08:00
ssbg04 e68ae49f28 feat(frontend): update dashboard, document, student, archives, and users screens per AGENTS.md 2026-08-07 20:36:55 +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 4c69b0f063 feat(frontend): apply dark theme to documents, archives, and reports screens 2026-08-07 16:25:01 +08:00