ODTrack Academia™ is a comprehensive, production-ready On-Duty (OD) request management system designed for academic institutions. Built using Flutter and FastAPI, the application delivers a seamless, cross-platform and offline-first experience for both students and staff.
- Smart Requests: Submit OD requests with intelligent timetable staff routing and a 30-second submission undo buffer.
- Timetables & Directory: Centralized access to visual weekly schedules and an interactive staff directory.
- File Interfacing: Attach supportive medical or event documents directly onto requests.
- Notifications & Calendars: Receive real-time FCM updates regarding request status changes with automatic event calendar synchronization.
- OD Inbox: A feature-rich dashboard for approving or rejecting requests in granular or massive bulk operations.
- Actionable Analytics: Deeply layered graphical insights tracking teaching workloads, peer comparisons, and historic rejection trends.
- Secure Signatures: Embed personalized digital signatures onto authenticated OD request printouts.
- PDF Exporting: Render and securely output institutional reports to PDF and CSV vectors on demand.
- Offline-First Resilience: An intelligent
Hivecache system and synchronous queue broker automatically caches writes offline and re-syncs seamlessly using Exponential Backoffs upon regaining connectivity. - Strict Accessibility: Fully WCAG 2.1 Compliant incorporating structured screen reader tags, scaleable typography, high contrast dark mode structuring, and focused keyboard routing out of the box.
- Role-Based Security: Complete boundary isolation separating the Student (Reg # + DOB) and Staff (Email + Password) authentication schemas under a stateless JWT/AES-256 umbrella.
Verify your environment meets the prerequisites before moving ahead.
| Toolkit | Minimum Version |
|---|---|
| Flutter SDK | 3.19+ |
| Dart SDK | 3.0+ |
| Python | 3.14+ |
| PostgreSQL | 17+ |
- Clone the Source: Include submodules if necessary.
git clone <repository-url> cd Flutter-ODTrack_Academia
- Retrieve Packages:
flutter pub get
- Generate Structs: Build all Riverpod and Hive serialization adapters.
dart run build_runner build -d
- Boot App:
flutter run
The Python server operates on Uvicorn. To attach a development backend instance to your local Android simulator (running on 10.0.2.2 usually):
cd backend
# Initialize Environment
python -m venv venv
.\venv\Scripts\activate # Windows Environments
# Resolve Dependencies
pip install -r requirements.txt
# Migrate Empty DB
python create_db.py
alembic upgrade head
# Spin Uvicorn
python -m uvicorn app.main:app --reloadNote: For production database credentials or SMTP targets, instantiate a local
.envfile leveraging.env.exampleinside the backend root.
The standard quality control pipelines integrate static analysis checks with deterministic mock configurations. Run the complete unit test suite explicitly covering all edge conditions across the offline synchronization services:
flutter testTo strip debug payloads from Android systems and output a production AAB bundle:
flutter build appbundle --release- M1: Architecture: Riverpod setup, Hive Cache, and PostgreSQL
- M2: Identity Management: JWT mapping, dual authentication routing
- M3: OD Connectivity: FastAPI file uploads, SMTP Mocking, Digital Signatures
- M4 & M5: System Polishing: Offline queues, Visual Analytics, Walkthroughs
- M6: Hardening: Security Audits, AES-256 Storage Encyptions, Automatic JWT Tokens Refresh
- M7: Advanced Features: FCM Push Notifications properly piped to Staff devices and Student tracking
We welcome patches formatting under standard Conventional Commits. Please submit feature branches mapped against active GitHub Issues.
Copyright © 2025-2026 Office of Academic Affairs. All rights reserved.