Образование

РОСБИОТЕХ — Личный кабинет

Мобильное приложение на Flutter для единого личного кабинета студентов и сотрудников университета с расписанием, документами, оплатой и системой заявок

Клиент

РОСБИОТЕХ (МГУПП)

Срок

12 месяцев

РОСБИОТЕХ — Личный кабинет
FlutterDartClean ArchitectureOAuth2FirebaseSentry

Клиент

РОСБИОТЕХ (Московский государственный университет пищевых производств) — один из ведущих технических университетов России, специализирующийся на пищевой промышленности и биотехнологиях. Университет объединяет тысячи студентов и сотрудников, которым необходим единый цифровой инструмент для управления учебным процессом, документами и административными задачами.

Задача

Создать комплексное мобильное приложение для студентов и сотрудников университета, которое объединит все ключевые сервисы в едином интерфейсе:

  • Расписание занятий с поддержкой разных типов отображения (день/неделя) для студентов и преподавателей
  • Документооборот — управление приказами, выписками, договорами и личными делами
  • Оплата — управление балансом, историей платежей и оплатой проживания в общежитии
  • Единое окно услуг — система подачи и отслеживания заявок на различные административные услуги
  • Образовательная траектория — просмотр учебных планов, компетенций и академических графиков
  • Зачетная книжка — электронная версия с оценками по дисциплинам, практикам и курсовым работам
  • Профиль преподавателя — просмотр информации о преподавателях, их расписании и контактах
  • Новости и уведомления — актуальная информация о событиях университета

Приложение должно работать на трех платформах (Android, iOS, Web) с единой кодовой базой и обеспечивать высокий уровень безопасности при работе с персональными данными.

Решение

Кроссплатформенная разработка на Flutter

Для реализации проекта был выбран Flutter — кроссплатформенный фреймворк от Google. Это решение позволило:

  • Единая кодовая база для всех платформ (Android, iOS, Web)
  • Высокая производительность благодаря компиляции в нативный код
  • Быстрая разработка с hot reload для мгновенного отображения изменений
  • Единый UI/UX на всех платформах с адаптацией под особенности каждой платформы

Приложение использует современные практики разработки:

  • Clean Architecture с четким разделением на слои (domain, data, presentation)
  • Dependency Injection через GetIt для управления зависимостями
  • State Management на Provider для реактивного управления состоянием
  • Auto Route для типобезопасной навигации
  • Code Generation для автоматической генерации роутинга и локализации

Безопасность и аутентификация

Университетский личный кабинет работает с конфиденциальными данными студентов и сотрудников, поэтому безопасность была приоритетом:

  • OAuth2 аутентификация через единую систему авторизации РОСБИОТЕХ
  • Шифрование токенов с использованием Flutter Secure Storage
  • Certificate Pinning для защиты от MITM-атак
  • Безопасное хранение данных с шифрованием чувствительной информации
  • Автоматическое обновление токенов с механизмом refresh token
  • Обработка ошибок аутентификации с понятными сообщениями для пользователей

Модульная архитектура

Приложение построено по принципу Feature-First Architecture, где каждая функциональность выделена в отдельный модуль:

  • schedule/ — Расписание занятий
  • docs/ — Документооборот
  • payment/ — Оплата и баланс
  • union_window/ — Единое окно услуг
  • educational_trajectory/ — Образовательная траектория
  • gradebook/ — Зачетная книжка
  • profile/ — Профиль пользователя
  • teacher_profile/ — Профиль преподавателя

Каждый модуль содержит:

  • Domain — бизнес-логика и модели данных
  • Data — репозитории и источники данных (API, локальное хранилище)
  • UI — пользовательский интерфейс и виджеты

Такая структура обеспечивает масштабируемость, тестируемость, переиспользование компонентов и упрощает поддержку проекта.

Производительность и оптимизация

Для обеспечения плавной работы приложения были реализованы:

  • Кэширование изображений с использованием cached_memory_image для быстрой загрузки фотографий
  • Ленивая загрузка данных с пагинацией для больших списков
  • Оптимизация сетевых запросов с дебаунсингом и кэшированием ответов
  • Виртуализация списков для эффективного отображения больших объемов данных
  • Оптимизация изображений с масштабированием и сжатием на стороне сервера

Локализация и мультиязычность

Приложение поддерживает два языка: 🇷🇺 Русский (основной) и 🇺🇸 Английский.

Локализация реализована через easy_localization:

  • Автоматическая генерация ключей локализации
  • Типобезопасный доступ через LocaleKeys
  • Поддержка плюрализации и форматирования дат
  • Динамическое переключение языка без перезапуска приложения

Адаптивный дизайн

Интерфейс адаптируется под разные размеры экранов:

  • Responsive Builder для определения типа устройства (mobile, tablet, desktop)
  • Адаптивные виджеты с разными макетами для разных экранов
  • Оптимизация для Web с поддержкой клавиатурной навигации
  • Темная и светлая темы с автоматическим переключением по системным настройкам

Функции приложения

📅 Расписание занятий

Центральная функция приложения — расписание занятий с расширенными возможностями:

  • Два режима отображения: для студентов и преподавателей
  • Календарь с переключением между дневным и недельным видом
  • Фильтрация по типам занятий (лекции, практики, лабораторные)
  • Детальная информация о каждом занятии: преподаватели, аудитории, группы
  • Экспорт в календарь через iCal для синхронизации с внешними календарями
  • Офлайн-режим с кэшированием расписания

📄 Документооборот

Полноценная система управления документами:

  • Приказы и выписки с возможностью просмотра и скачивания
  • Договоры с отслеживанием статуса и необходимости действий
  • Личное дело студента с полной информацией
  • Уведомления о новых документах, требующих внимания
  • Заказ документов через МФЦ прямо из приложения

💳 Оплата и баланс

Финансовый модуль для управления платежами:

  • Баланс с отображением текущего состояния
  • История платежей с детализацией по каждому транзакции
  • Оплата проживания в общежитии с расписанием списаний
  • Просмотр чеков с возможностью скачивания
  • Уведомления о предстоящих списаниях

🎫 Единое окно услуг

Система подачи и отслеживания административных заявок:

  • Каталог услуг с категоризацией (обучение, финансы, документы и др.)
  • Подача заявок на различные услуги университета
  • Отслеживание статуса заявок в реальном времени
  • История заявок с фильтрацией по статусу
  • Уведомления об изменении статуса заявки

Особенность: система автоматически фильтрует доступные услуги в зависимости от роли пользователя и выбранного профиля обучения.

📊 Образовательная траектория

Визуализация учебного процесса:

  • Учебный план с отображением всех дисциплин
  • Компетенции с прогрессом освоения
  • Академический график с важными датами семестра
  • Интерактивные графики успеваемости

📖 Зачетная книжка

Электронная версия зачетной книжки:

  • Оценки по дисциплинам с группировкой по семестрам
  • Курсовые работы и проекты с отдельным разделом
  • Практики с оценками и отчетами
  • ВКР и госэкзамен для выпускников
  • Фильтрация по семестрам и формам контроля
  • Цветовая индикация оценок для быстрой навигации

👨‍🏫 Профиль преподавателя

Информационная система о преподавателях:

  • Фотографии преподавателей с оптимизированной загрузкой
  • Контактная информация и рабочие часы
  • Расписание преподавателя с возможностью просмотра
  • Биография и научные достижения
  • Быстрый доступ к расписанию конкретного преподавателя

📱 Дополнительные функции

  • Новости университета с категоризацией и поиском
  • Дни рождения коллег и однокурсников
  • Карта университета с расположением корпусов
  • Настройки с персонализацией интерфейса
  • Push-уведомления через OneSignal
  • Аналитика через Firebase Analytics

Технические детали

Технологический стек

Frontend: Flutter 3.0+, Dart 3.0+

State Management: Provider для управления состоянием, ChangeNotifier для реактивных обновлений

Навигация: Auto Route для типобезопасной маршрутизации, Deep linking для прямых ссылок на разделы

Сеть: Dio для HTTP-запросов, Interceptors для логирования и обработки ошибок, Retry механизм для надежности

Локальное хранилище: Flutter Secure Storage для токенов, SharedPreferences для настроек, Hive для кэширования

Локализация: easy_localization для мультиязычности, автогенерация ключей локализации

Аналитика и мониторинг: Firebase Analytics, Firebase Crashlytics, OneSignal для push-уведомлений

Архитектурные паттерны

  • Clean Architecture — разделение на слои: Domain, Data, Presentation
  • Repository Pattern — абстракция источников данных, единая точка доступа
  • Provider Pattern — управление состоянием через ChangeNotifier
  • Dependency Injection — GetIt для управления зависимостями

Результаты

Приложение успешно запущено и используется студентами и сотрудниками университета РОСБИОТЕХ. Ключевые достижения:

  • Единая платформа для всех пользователей университета
  • Кроссплатформенность — один код для Android, iOS и Web
  • Безопасность — надежная защита персональных данных
  • Производительность — плавная работа даже при больших объемах данных
  • Масштабируемость — легко добавлять новые функции
  • Поддержка — модульная архитектура упрощает поддержку и развитие

Проект демонстрирует возможности Flutter для создания сложных enterprise-приложений с высокими требованиями к безопасности, производительности и функциональности. Использование Clean Architecture, модульной структуры и современных практик разработки позволило создать масштабируемое решение, которое легко поддерживать и развивать.

РОСБИОТЕХ — Личный кабинет - ITNovel - ITNovel