689dbc48e787d9d427aa945e67933ed422a26d26
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
TIS RMS
Records Management System
A full-stack, offline-capable platform for managing student records, documents, and OCR-powered data extraction in Philippine educational institutions.
✨ Features
- 📂 Document Management — Upload, preview, and organize student documents (PDFs & images)
- 🎓 Student Records — Track enrollment status, LRN, grade level, strand, and document completion
- 🔍 OCR Extraction — Extract data from scanned documents via bundled Tesseract OCR (fully offline)
- 📊 Reports — Generate DepEd School Form 10 (SF10) for JHS & SHS using bundled Excel templates
- 🔔 Push Notifications — Real-time alerts via Firebase Cloud Messaging
- 🔐 Authentication — JWT-based sessions with bcrypt password hashing
- 🛠️ Windows Service — Backend can run as a persistent Windows Service via NSSM
🏗️ Architecture
Two components communicating over a local network:
- Frontend — Flutter multi-platform client supporting Windows (desktop) and Android (mobile), built with Riverpod, Dio, Syncfusion PDF Viewer, and Socket.IO
- Backend — Node.js + Express REST API with a local SQLite database, Tesseract OCR, and Ghostscript bundled for offline document processing
🚀 Getting Started
Prerequisites: Node.js v18+, Flutter SDK (stable), Visual Studio 2022 with C++ workload.
Tesseract OCR and Ghostscript are bundled — no extra installation needed.
Backend
cd backend
npm install
copy .example.env .env # configure port, JWT secret, etc.
npm run dev # or: npm start
Frontend
cd frontend
flutter pub get
# Windows
flutter run -d windows
flutter build windows
# Android
flutter run -d android
flutter build apk
To build a Windows installer, compile frontend/TIS_RMS_Client.iss with Inno Setup, or run:
.\build_release.ps1
📜 License
Developed by BSIT3DSB — PLSP.
Built with ❤️ using Flutter & Node.js · TIS Records Management System
Languages
Dart
98.4%
C++
0.6%
CMake
0.3%
Kotlin
0.3%
Inno Setup
0.3%