17.78M

Презентация ДП

1.

РАЗРАБОТКА КРОССПЛАТФОРМЕННОГО
МОБИЛЬНОГО ПРИЛОЖЕНИЯ
ДЛЯ КОМПЛЕКСНОГО УПРАВЛЕНИЯ
МЕРОПРИЯТИЯМИ
Савинич Т.М.
Научный руководитель: Куприянова Д.В.
Белорусский государственный университет информатики и радиоэлектроники
1 / 12

2.

АКТУАЛЬНОСТЬ ПРОБЛЕМЫ
!
×

Фрагментированность
Управление гостями, задачами и командой ведётся в разрозненных приложениях
Потеря контекста
Дублирование данных и утрата важной информации на этапах планирования
Низкая эффективность
Табличные редакторы и мессенджеры не обеспечивают единого информационного
пространства
Задача: создать архитектуру мобильного приложения, объединяющего все аспекты управления
мероприятием
2 / 12

3.

АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ
Функция
Eventbrite
Trello
Google Sheets +
мессенджеры
Givents
Управление задачами


частично

Гостевые списки


частично

Командная работа




Встроенный чат




Push-уведомления




Шаблоны мероприятий

частично


Единый контекст события




Ни одно из существующих решений не обеспечивает полного покрытия жизненного цикла мероприятия 3 / 12

4.

КЛИЕНТ-СЕРВЕРНАЯ АРХИТЕКТУРА
МОБИЛЬНЫЙ КЛИЕНТ
API СЕРВЕР
▸ React Native 0.72
▸ Node.js + Express.js
▸ React Navigation 6.x
▸ JWT + bcrypt
▸ EventContext (Context API)
MySQL
▸ users
▸ 44 файла маршрутов
▸ events
▸ AsyncStorage + Keychain
▸ Middleware-слой
▸ tasks
▸ Axios + интерцепторы
▸ Multer + Sharp
▸ RevenueCat SDK
▸ i18n (ru / en)
▸ Notifee + FCM
▸ CI/CD (GitHub Actions)
REST API
(HTTP/JSON)
▸ guests

user_event_map
ping
4 / 12

5.

СЕРВЕРНЫЙ СЛОЙ (REST API)
1
Express.js
Фреймворк маршрутизации
HTTP-запросов.
44 файла маршрутов
покрывают все модули.
2
JWTавторизация
authMiddleware верифицирует
токен
на каждом защищённом
эндпоинте.
3
MySQL2
Promise Pool
Асинхронная обработка
запросов
без блокировки Event Loop.
Вспомогательные утилиты
usersHelper
emailHelper
— 20+ функций работы с
пользователями
— Отправка email через Nodemailer
(SMTP)
tasksHelper
— Логика управления задачами
paymentHelper
— Обработка платежей BePaid (USD,
BYN, RUB, EUR)
5 / 12

6.

РЕЛЯЦИОННОЕ ЯДРО (MySQL)
Ролевая модель доступа
Целостность данных
Таблица user_event_mapping связывает пользователей
с мероприятиями и назначает роли с набором прав:
— управление гостями
— создание и назначение задач
— приглашение членов команды
— отправка сообщений
Транзакции и каскадные
ограничения обеспечивают
консистентность при
параллельной работе
нескольких организаторов
Ключевые таблицы базы данных
users
events
tasks
guests
invitations
templates
messages
user_event_mapping
6 / 12

7.

АВТОРИЗАЦИЯ И БЕЗОПАСНОСТЬ
1
2
3
4
Аутентификация
Верификация
Генерация
токена
Хранение
Пользователь передаёт
email и пароль
Пароль проверяется
алгоритмом bcrypt
Сервер создаёт
подписанный JWT-токен
Токен сохраняется
в Keychain устройства
authMiddleware
SessionManager (мобильный
клиент)
Каждый запрос к защищённому
эндпоинту проходит верификацию:
— Декодирование JWT-токена
— Проверка срока действия
— Извлечение идентификатора пользователя
Безопасное хранение токенов в
защищённом хранилище ОС:
— Keychain (iOS)
— Keystore (Android)
Предотвращает компрометацию
учётных данных
7 / 12

8.

СИСТЕМА УВЕДОМЛЕНИЙ
Push-уведомления (FCM)
Email-оповещения
Серверный модуль FirebaseNotificationManager
формирует и отправляет push-уведомления.
Модуль emailHelper с библиотекой
Nodemailer и SMTP-протоколом.
Триггерные события:
— Приглашение в команду
— Изменение статуса задачи
— Новое сообщение в чате
— Подтверждение присутствия гостем
Обеспечивает доставку:
— Приглашений на мероприятия
— Важных уведомлений
— Пользователям без доступа
к мобильному приложению
Обработка на мобильном клиенте
NotificationHand
ler
Notifee
Навигация
Регистрация FCM-токена, обработка в
foreground/background
Кастомные каналы, badge count,
группировка по мероприятиям
Переход к соответствующему экрану при
нажатии на уведомление
8 / 12

9.

МОНЕТИЗАЦИЯ И
МАСШТАБИРОВАНИЕ
Basic
Advanced
5
25
Мероприятий
Мероприятий
Premium
100
Мероприятий
100
Задач
1 000
Задач
10 000
Задач
50
Гостей
500
Гостей
5 000
Гостей
5
Команда
50
Команда
500
Команда
Двухуровневая проверка лимитов (checkUserLimits)
Middleware на сервере проверяет лимиты в два этапа: базовый тариф → премиальный. При превышении
возвращает ошибку с предложением обновить подписку.
9 / 12

10.

МОБИЛЬНЫЙ КЛИЕНТ (REACT NATIVE)
1
Кроссплатформ
енность
2
Навигация
3
Состояние
React Native 0.72.14 — единая
кодовая база
для iOS и Android с нативным UX
React Navigation 6.x: Stack-навигатор
для иерархии + BottomTab для
разделов
EventContext (Context API) —
глобальный
доступ к данным мероприятия
4
5
6
Сеть
Axios с интерцепторами для автодобавления JWT к каждому запросу
Безопасность
AsyncStorage для данных сессии,
Keychain для JWT-токенов
UX-улучшения
Lottie-анимации, react-native-chartkit,
@gorhom/bottom-sheet
10 / 12

11.

РЕЗУЛЬТАТЫ И ВЫВОДЫ
01
Сокращение времени организации
02
Повышение координации
03
Масштабируемость платформы
04
Снижение порога входа
Объединение задач, гостей, команды и коммуникаций в едином приложении с механизмом
шаблонов
Ролевая модель доступа, встроенный мессенджер и push-уведомления в реальном времени
Тарифная система подписок с двухуровневой серверной проверкой лимитов
Кроссплатформенность (iOS + Android), мультиязычный интерфейс, интуитивная навигация
11 / 12

12.

СПАСИБО ЗА ВНИМАНИЕ
Разработка кросс-платформенного мобильного приложения
для комплексного управления мероприятиями
Савинич Т.М.
БГУИР, 2026
12 / 12

13.

12 / 12
English     Русский Правила