Files
TIS_RMS/frontend/AGENTS.md
T
ssbg04 f30faeecff feat(students): adapt filter dialog for enrolled vs all tabs
- 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
2026-10-01 23:49:48 +08:00

54 KiB
Raw Blame History

BACKEND WORKFLOW (F:\SumbrerongBato\tis_rms_server\backend)

  1. Read/Analyze Task → Inspect backend directory.
  2. Draft Code → Execute Quality Gate (Accept / Decline).
  3. Post-Code Loop: Analyze Errors → Resolve → Re-verify until Errors == 0.
  4. Terminal Exit: If build clean → Execute git push.

FRONTEND WORKFLOW (F:\SumbrerongBato\tis_rms_server\frontend)

  1. Read/Analyze Task → Inspect frontend directory.
  2. Draft Components/Logic → Execute Quality Gate (Accept / Decline).
  3. Post-Code Loop: Analyze UI/Build Errors → Resolve → Re-verify until Errors == 0.
  4. Terminal Exit: If build clean & lint passes → Execute git push.

⚡️ TOKEN COMPRESSION PROTOCOL

1. INPUT RESTRICTIONS (CONTEXT DRYING)

  • Ignore system-level file-tree re-reads unless files change (Δ).
  • Avoid parsing historical chat history beyond the immediate code break.
  • Reference internal libraries by name only; do not request full source mappings.

2. OUTPUT SYSTEM CONSTRAINTS (ZERO BLOAT)

  • NO natural language intros, greetings, or conversational transitions.
  • NO explanations, rationales, or "why this works" breakdowns.
  • NO summaries of work completed or code recap commentary.
  • Exclude all code comments, inline documentation, and docstrings.

3. PATCH FORMATTING (MICRO-DIFFS ONLY)

  • BANNED: Full-file reprinting, multi-line blocks of unchanged code.
  • MANDATORY: Return micro-diff format or target lines replacement only:
    - [old line]
    + [new line]
    
  • If a file creation is required, generate minimal skeleton logic only.

4. QUOTA BRAKING

  • Max output limit per prompt turn = 150 tokens.
  • If patch logic requires >150 tokens: STOP, emit [TOKEN LIMIT BRAKE], and wait for chunked instructions.

📱 FLUTTER UI/UX RULES

  • Stack: Flutter (latest) + Riverpod (AsyncNotifier/Notifier) + Material 3 (useMaterial3: true).
  • Palette: Use existing Theme.of(context).colorScheme tokens only. Never hardcode hex values.
  • Layout: Stack actions vertically on Android (Column with full-width ElevatedButton).
  • Output: No design essays. Return optimized widget code immediately.

TODO

  • dont do tasks with "(dont do)"

ANDROID APP

  • [DONE] hamburger nav bar slide too much touch area on the left
    • In android_bottom_nav_layout.dart, reduced drawerEdgeDragWidth from MediaQuery.of(context).size.width * 0.45 down to a strict 28.0 edge touch area to prevent accidental drawer opening when interacting with screen content.
  • [DONE] report screen in deped tab export pdf cannot download the generated pdf, because of permission denied in android app
    • In download_service.dart, added saveBytes() with adaptive permission management for Android: requests Permission.manageExternalStorage on Android 11+ (API 30+) and standard storage permission on Android 10 and below.
    • Added multi-tier storage fallback: if public /Download/TIS_RMS is restricted by Android OS or denied by the user, gracefully falls back to app-specific external download/document storage directories that never throw permission errors.
    • In AndroidManifest.xml, added android:requestLegacyExternalStorage="true" to <application> for legacy storage support on Android 10 (API 29).
    • Updated transparency_board_section.dart and reports_screen.dart to use DownloadService.saveBytes().

STUDENT SCREEN

  • [DONE] remove the "Student Directory" and copy the design of top header tab on attached picture
    • Removed "Students Directory" page title heading and unified the header into a floating card (height: 52, margin: horizontal 16/24, vertical 8, rounded 12 with border and subtle shadow).
    • Left side contains segmented tab switcher (Enrolled & All Students), right side contains search button, filter button with badge, elevated Add Student primary CTA button, and bulk import button.
  • [DONE] students tab make the filter not the same for enrolled and all, in the enrolled remove the status and school year, now in all tab remove the enrolled status
    • Enrolled tab: Filter dialog hides both "School Year" and "Status" sections (locked to current active school year + Enrolled status). Resetting filters clears grade/section/4Ps/sorting/limit without unsetting the enrolled school year or status.
    • All Students tab: Filter dialog displays "School Year" dropdown and "Status" filter chips with 'Enrolled' removed (options: 'All Status', 'Graduated', 'Transferred', 'Dropped', 'Inactive').
    • Added studentViewTabProvider and updated studentActiveFilterCountProvider so the filter badge count accurately counts active user overrides per tab.

USERS SCREEN

  • [DONE] use tabs for filter of all, admin, teacher, inactive -> copy the design on attached picture
    • Converted the old role filter chips and scrollbar into unified segmented tabs (All, Admin, Teacher, Inactive) with matching active/inactive states.
    • Placed inside a matching top header card (height: 52, rounded 12) with Search button and Add User CTA on the right.

SETTINGS SCREEN

  • [DONE] descriptions of the system client, contact developers -> settings screen support
    • Upgraded the collapsible card in settings_screen.dart to "About, Support & System Information".
    • Added Client/System description header for Talisay Integrated School Records Management System.
    • Added Developer & Technical Support section for Dalubhasaan ng Lungsod ng San Pablo (DLSP) BSIT Capstone Team with lead developer email (crischarlesgarcia345@gmail.com).
    • Added direct action CTAs: "Contact via Email" (mailto launcher / clipboard fallback), "Report an Issue" (GitHub issues link), "GitHub Repository" (project repository link), and "Meet the Team" (navigates to CapstoneMembersScreen).
  • [DONE] make the about, support, system information in settings responsive
    • System/Client Description Header now adapts using LayoutBuilder (<460px): renders icon + title in a row and full-width description below on mobile screens, avoiding horizontal squishing.
    • System Information items (_buildAboutInfoRow) dynamically switch from a 2-column fixed-label layout to stacked label & selectable value on compact viewports (<460px), preventing text compression.
    • Developer Contact container adapts on viewports <500px: stacks label and email with a clean indentation to prevent horizontal overflows. Action buttons seamlessly wrap with Wrap.

DONT DO


TIS_RMS Server Manager (dont do)

Windows Service - NSSM nodejs

  • backup/restore db and files

  • backup: database backup, automatic schedule, snapshot retention

  • restore: restore database, validate backup, restart service automatically

  • files: mirror backup, verify files, restore files,

  • can choose where to store db and files separately

  • dashboard: server status, cpu mem usage, connected users, uptime

  • service: controls windows service stop start restart

  • logs, server logs, error logs

  • settings backup path, file backup path, database location