Все проектыАктивный сервис

ВКИ НГУ (PWA)

Расписание занятий и студенческий сервис ВКИ НГУ

ВКИ НГУ (PWA) скриншот 1ВКИ НГУ (PWA) скриншот 2ВКИ НГУ (PWA) скриншот 3ВКИ НГУ (PWA) скриншот 4ВКИ НГУ (PWA) скриншот 5
1 / 5
Моя рольСоздатель & Fullstack Разработчик
Период2025 – наст. время
Категории
PWAFastAPIOffline-First

О проекте и концепция

ВКИ НГУ PWA — это высокоскоростное мобильное веб-приложение и Telegram Mini App, развернутое для студентов и преподавателей Высшего колледжа информатики НГУ. Сервис решает проблему доступа к актуальному расписанию занятий, работает полностью оффлайн и мгновенно адаптируется под любые мобильные устройства.

Ключевые возможности

  • Фронтенд на React 19 + Vite 6 + SCSS с интеграцией PWA (vite-plugin-pwa) и Lottie
  • Высокоскоростной асинхронный API-бэкенд на Python & FastAPI с ORM Tortoise и PostgreSQL
  • Оффлайн-доступ к расписанию через Service Worker & Cache Storage
  • Встроенная система Web Push уведомлений (VAPID) и автопарсер расписания групп/преподавателей

Инженерные вызовы и решения

Парсинг нестабильной структуры файлов расписания

Сложность / Проблема

Исходные файлы расписания колледжа имеют нарушенную ячеистую структуру, частые объединения строк и опечатки в именах.

Решение

Создан отказоустойчивый парсер на Python с библиотеками openpyxl, pandas и pymupdf, нормализующий строки по регулярным выражениям.

Работа приложения в подвальных помещениях без интернета

Сложность / Проблема

Студенты часто сверяются с расписанием внутри аудиторий, где мобильная сеть и Wi-Fi полностью отсутствуют.

Решение

Интегрирован Service Worker со стратегией кэширования Stale-While-Revalidate, сохраняющий API-ответы и статику локально.

Информирование об изменениях в расписании

Сложность / Проблема

Пользователи пропускают важные замены пар из-за отсутствия времени на ручную проверку сайта колледжа.

Решение

Разработан сервис подписок и отправки мгновенных Web Push уведомлений (VAPID) при обнаружении обновлений парсером.

Выводы и вынесенный опыт

  • PWA технологии идеально подходят для ежедневных мобильных сервисов.
  • Работа в режиме offline-first кардинально улучшает удовлетворенность пользователей.

Использованный стек технологий

React 19TypeScriptVitePWA (vite-plugin-pwa)SCSSRedux ToolkitReact Router v7FastAPIPythonTortoise ORMPostgreSQLWeb Push APILottieVitest