РОСБИОТЕХ — Личный кабинет
Мобильное приложение на Flutter для единого личного кабинета студентов и сотрудников университета с расписанием, документами, оплатой и системой заявок
Клиент
РОСБИОТЕХ (МГУПП)
Срок
12 месяцев
Клиент
РОСБИОТЕХ (Московский государственный университет пищевых производств) — один из ведущих технических университетов России, специализирующийся на пищевой промышленности и биотехнологиях. Университет объединяет тысячи студентов и сотрудников, которым необходим единый цифровой инструмент для управления учебным процессом, документами и административными задачами.
Задача
Создать комплексное мобильное приложение для студентов и сотрудников университета, которое объединит все ключевые сервисы в едином интерфейсе:
- Расписание занятий с поддержкой разных типов отображения (день/неделя) для студентов и преподавателей
- Документооборот — управление приказами, выписками, договорами и личными делами
- Оплата — управление балансом, историей платежей и оплатой проживания в общежитии
- Единое окно услуг — система подачи и отслеживания заявок на различные административные услуги
- Образовательная траектория — просмотр учебных планов, компетенций и академических графиков
- Зачетная книжка — электронная версия с оценками по дисциплинам, практикам и курсовым работам
- Профиль преподавателя — просмотр информации о преподавателях, их расписании и контактах
- Новости и уведомления — актуальная информация о событиях университета
Приложение должно работать на трех платформах (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, модульной структуры и современных практик разработки позволило создать масштабируемое решение, которое легко поддерживать и развивать.