ssbg04 d983c0d2d8 feat: teacher section scoping, session expiry fix, and notification timeline sorting
Backend:
- studentController: scope teacher student list/count by timeline-latest enrollment
  (ORDER BY ay.year_range DESC, e.grade_level DESC, e.id DESC) instead of MAX(id)
- documentController: same timeline-based scoping for teacher document access
- folderController: same timeline-based scoping for teacher folder access
- dashboardController: same timeline-based scoping for teacher dashboard stats
- archiveController: same timeline-based scoping for teacher archive view
- notificationController: replace MAX(id) enrollment subqueries with timeline sort;
  add broadcast notification support (entity_type IS NULL, category IN (student/document/system))
- schema, routes, reports, requirements, users: various supporting updates

Frontend:
- auth_repository: restore FlutterSecureStorage for JWT token storage
  (was broken: migrated to SharedPreferences while all other repos read from FlutterSecureStorage,
  causing all API calls to send null token silently)
- student_model: add latestEnrollment getter computed dynamically from enrollments list;
  expose latestGradeLevel/latestSection as getters with fallback to server-supplied values
- student_provider: invalidate studentDetailProvider on update/bulkEnroll/bulkGraduate
- inactivity_wrapper: fix timeout 3000s -> 300s (5 min); improve _handleInactivity guard
- dashboard, documents, settings, students, users screens: various UI updates

Chore:
- .gitignore: add .env, *.db, student uploads, debug/scratch scripts, flutter build artifacts
- remove tis_rms.db from git tracking (runtime data, should never be committed)
2026-06-23 01:13:00 +08:00

TIS RMS (Records Management System)

A comprehensive, client-server Records Management System designed to streamline document handling, student records management, and automated data extraction.

🏗 Architecture Overview

This project is divided into two primary components:

1. Frontend (Flutter Windows Application)

A modern, performant desktop application tailored for Windows, built using Flutter.

  • Key Technologies: Flutter, Riverpod (State Management), Dio (Networking), Syncfusion PDF Viewer.
  • Core Modules:
    • Dashboard: Overview of recent activities and user history.
    • Document Management: Upload, preview, and manage student records and documents.
    • OCR Integration: Automatically extract data from scanned documents directly into the system.
    • User & Student Management: Interface to manage student profiles, teacher records, and administrative settings.
    • Reports Generation: Support for standard educational Excel templates (e.g., School Form 10).

2. Backend (Node.js REST API)

A robust and lightweight local server providing data persistence and powerful OCR processing capabilities.

  • Key Technologies: Node.js, Express.js, SQLite (better-sqlite3), JWT (Authentication), Multer (File Uploads).
  • Core Features:
    • Authentication: Secure login and session management using bcrypt and jsonwebtoken.
    • Local Database: Utilizes a fast, local SQLite database (tis_rms.db) for portability and simple deployment.
    • OCR & PDF Engine: Integrates locally bundled Tesseract OCR and Ghostscript to securely process and extract text from images and PDFs completely offline.
    • File Handling: Secure temporary storage and parsing pipeline for incoming files.

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher recommended)
  • Flutter SDK (stable channel)
  • Visual Studio with C++ workload (for compiling the Windows Flutter app)

Backend Setup

  1. Navigate to the backend directory:
    cd backend
    
  2. Install dependencies:
    npm install
    
  3. Copy .example.env to .env and configure your environment variables.
  4. Start the server:
    npm start
    
    (For development, you can use npm run dev if nodemon is configured)

Frontend Setup

  1. Navigate to the frontend directory:
    cd frontend
    
  2. Fetch dependencies:
    flutter pub get
    
  3. Run the Windows application:
    flutter run -d windows
    
    (To build the release executable, run flutter build windows)

📦 Included Dependencies & Tooling

  • Tesseract & Ghostscript binaries: The backend repository includes bundled Windows binaries for Tesseract OCR and Ghostscript to guarantee that document processing works out-of-the-box without requiring complex system path configurations.
  • Inno Setup: Includes an installer script (TIS_Frontend.iss) for easily packaging and distributing the compiled Flutter application.
S
Description
No description provided
Readme AGPL-3.0
116 MiB
0 Stars 1 Watchers 0 Forks
Languages
Dart 98.4%
C++ 0.6%
CMake 0.3%
Kotlin 0.3%
Inno Setup 0.3%