所有项目活跃服务

ВКИ НГУ (PWA)

新西伯利亚国立大学高等信息学院课表与学生服务

ВКИ НГУ (PWA) скриншот 1ВКИ НГУ (PWA) скриншот 2ВКИ НГУ (PWA) скриншот 3ВКИ НГУ (PWA) скриншот 4ВКИ НГУ (PWA) скриншот 5
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