所有项目活跃服务
ВКИ НГУ (PWA)
新西伯利亚国立大学高等信息学院课表与学生服务





1 / 5
Моя роль创建者兼全栈开发者
Период2025 – наст. время
Категории
PWAFastAPIOffline-First
О проекте и концепция
VKI NSU PWA 是一款专为新西золотая国立大学高等信息学院师生打造的高速移动 Web 应用和 Telegram Mini App。它解决了传统课表查询的不便,支持完全离线运行,并无缝适配各类移动设备。
Ключевые возможности
- 基于 React 19 + Vite 6 + SCSS 构建的前端,集成 PWA (vite-plugin-pwa) 与 Lottie 动画
- 基于 Python & FastAPI 的高性能异步 API 后端,搭配 Tortoise ORM 与 PostgreSQL
- 通过 Service Worker 与 Cache Storage 实现 offline-first 离线课表查询
- 集成原生 VAPID Web Push 推送通知与自动化班级/教师课表解析器
Инженерные вызовы и решения
解析不稳定的课表文件结构
Сложность / Проблема
学校原始课表文件包含大量合并单元格、不规则网格和教师姓名的拼写错误。
Решение
基于 Python 构建了高容错解析器,运用 pandas、openpyxl 和 pymupdf 结合正则表达式对数据进行清洗与标准化。
无信号地下教室的离线查阅
Сложность / Проблема
学生常需在手机及 Wi-Fi 信号均无法覆盖的地下教室中即时确认后续课表。
Решение
集成 Service Worker 并采用 Stale-While-Revalidate 缓存策略,在本地持久化 API 响应与页面静态资源。
课表调整的即时通知推送
Сложность / Проблема
由于需要手动刷新网页,学生常常错过临时性的调课、停课或更换教室的通知。
Решение
设计了订阅与即时推送服务,当解析器检测到数据更新时,通过原生 Web Push API (VAPID) 推送提醒。
Выводы и вынесенный опыт
- PWA 技术非常适合高频使用的轻量移动服务。
- Offline-first(离线优先)的设计理念能极大提升移动端用户满意度。
Использованный стек технологий
React 19TypeScriptVitePWA (vite-plugin-pwa)SCSSRedux ToolkitReact Router v7FastAPIPythonTortoise ORMPostgreSQLWeb Push APILottieVitest