An offline-first Progressive Web App (PWA) designed to eliminate campus scheduling confusion and provide real-time updates.
University timetables are often fragmented across scattered PDF files, WhatsApp group messages, and physical notice boards. When class times shift or professors take emergency leave, students frequently arrive on campus only to find an empty classroom.
UniRoutine was engineered to solve this problem for our entire university campus:
- Centralized Timetables: Aggregates course routines and schedules across all departments and semesters into a single, clean user interface.
- Faculty Directory: Gives students instant access to faculty office hours, department designations, and contact emails.
- Role-Based Real-Time Notices: Enables authorized Class Representatives (CRs) and faculty members to post instantaneous schedule updates and room changes.
- Offline-First PWA Architecture: Rather than requiring students to pay or download large app-store packages, UniRoutine runs as an installable Progressive Web App (PWA) with client-side caching, functioning 100% offline with zero latency even during campus Wi-Fi outages.
Production UI: PWA installation prompt, real-time schedule filtering, offline caching indicator, and broadcasted CR notice cards.
** picture is for ref only. All above info are demo. ALL REAL INFO HIDDEN DUE TO SEC REASON **
graph TD
Client[Student & Faculty Devices] -->|Loads Web App| PWA[Progressive Web App / Service Worker]
subgraph PWA_Engine [Client-Side Layer]
PWA -->|Cached Assets & Routines| CacheStorage[Cache Storage & IndexedDB]
PWA -->|Sync Requests| SyncEngine[Background Sync Manager]
end
subgraph University_Server [Production Server Infrastructure]
SyncEngine -->|REST / WebSocket Sync| Server[Node.js / Express Backend]
Server --> DB[(Routines & Notices Database)]
Auth[Role-Based Access Control] -->|CR & Faculty Portals| Server
end
- Multi-Department & Multi-Semester Support: One-click switching between CSE, EEE, BBA, and other departments with semester-specific routine filters.
- Instant CR & Faculty Broadcast: Authorized Class Representatives can publish urgent announcements (e.g., "Class postponed by 30 mins" or "Room shifted to 402"), syncing instantly across active users.
- Zero App-Store Friction (PWA): Installable directly from the browser onto Android, iOS, Windows, and macOS with an app icon, without requiring Google Play Store or Apple App Store accounts.
- 100% Offline Availability: Cached routines and directory data are served directly from local device storage if internet access is interrupted.
- Production Deployed: Transitioned from a local prototype to a live deployment hosted directly on university student server infrastructure.
- Frontend: HTML5, CSS3, JavaScript (ES6+), Progressive Web App API (Service Workers, Web App Manifest).
- Backend: Node.js / Express REST API (with WebSocket support for live notice broadcasts).
- Storage: Lightweight JSON / SQLite database with client-side IndexedDB caching.
- Hosting: University-provided Linux server instance with Nginx reverse proxy.
- Developer Velocity: Accelerated development using modern AI agent workflows (Google Antigravity IDE & Cline).
git clone https://github.com/yourhandle/uniroutine.git
cd uniroutinenpm installnpm startOpen http://localhost:3000 in your browser.
- Open the web app in Chrome, Edge, or Safari on your phone or PC.
- Click the "Install" or "Add to Home Screen" prompt in the browser bar.
- UniRoutine is now installed as a native-feeling standalone app with full offline capabilities!
Distributed under the MIT License. See LICENSE for details.