Услуги
Россия, Москва
Android
Октябрь 2017
Многие родители, работодатели или организации сталкиваются с необходимостью контролировать перемещения людей (детей, сотрудников, подопечных) в реальном времени. Это может быть связано с безопасностью, управлением рабочим временем или просто желанием следить за маршрутом перемещений.
Разрабатываемое приложение должно иметь функции:
1. Отображение текущего местоположения пользователей на карте.
2. Хранение истории перемещений.
3. Управление профилями пользователей.
4. Создание геозон и получение уведомлений о входе/выходе из них.
Цель проекта
Создать мобильное приложение, которое позволит пользователям отслеживать местоположение других людей (трекеров), сохранять историю их перемещений, управлять профилями трекеров и создавать геозоны для получения уведомлений.
1. Анализ требований
• Отслеживание местоположения : Приложение должно показывать текущее местоположение трекеров на интерактивной карте по часам с GPS-трекером.
• История перемещений : Должна быть возможность просмотра истории перемещений каждого трекера за определенный период времени.
• Управление профилями : Пользователь должен иметь возможность добавлять/удалять трекеры, а также редактировать их профили.
• Геозоны : Возможность создания географических зон (геозон) и получение уведомлений о входе/выходе трекеров из этих зон.
• Безопасность : Защита данных пользователей и трекеров через аутентификацию и шифрование.
2. Опыт реализации подобных решений показывает, что при большом количестве GPS-трекеров, регулярно отправляющих данные на сервер, необходимо учитывать требования к высокой нагрузке ещё на этапе проектирования. В противном случае система может не справиться с объёмом входящих данных, что приведёт к сбоям и задержкам.
Для обеспечения стабильной работы в условиях интенсивного трафика проект будет построен на высокопроизводительных технологиях, обеспечивающих отказоустойчивость, масштабируемость и низкую латентность.
Серверная часть будет разработана на языке Go (Golang) — это позволит достичь высокой производительности и эффективно обрабатывать большое количество параллельных запросов.
Для хранения и обработки больших объёмов данных используется распределённая СУБД Apache Cassandra , которая оптимально подходит для работы с высокочастотными записями и горизонтальным масштабированием.
Межсервисное взаимодействие и обработка событий:
Для асинхронной обработки задач и потоковой обработки данных будут использоваться следующие технологии:
• RabbitMQ – для надёжной очереди задач, распределения нагрузки и фоновой обработки.
• Apache Kafka – для работы с потоками данных в реальном времени, логирования событий и репликации между микросервисами.
Административная панель:
Интерфейс администратора будет реализован с использованием фреймворка Laravel (PHP 8) , который предоставляет гибкость, простоту разработки и богатую экосистему для создания мощных backend-решений.
3. Функциональные требования
1. Главная страница ("Центр контроля") :
◦ Отображение текущего местоположения всех трекеров на интерактивной карте.
◦ Возможность нажатия на каждый трекер для детальной информации.
◦ Кнопка для увеличения/уменьшения масштаба карты.
2. Страница профиля :
◦ Редактирование личных данных пользователя (email, пароль).
◦ Список трекеров с возможностью добавления/удаления.
◦ Возможность назначения прав доступа к трекерам другим пользователям.
3. Страница истории :
◦ Визуализация истории перемещений трекера на карте.
◦ Выбор временного диапазона для просмотра истории.
◦ Интерактивная временная шкала для быстрого перехода к определенному моменту.
4. Страница геозон :
◦ Создание и редактирование геозон на карте.
◦ Назначение трекеров для мониторинга внутри геозоны.
◦ Настройка уведомлений о входе/выходе из геозоны.
5. Уведомления :
◦ Получение push-уведомлений о важных событиях (например, выход трекера из геозоны).
4. Дизайн интерфейса
На основе предоставленных экранов можно предложить следующий дизайн:
1. Главная страница ("Центр контроля") :
◦ Верхняя панель с меню и кнопкой поиска.
◦ Карта с маркерами трекеров.
◦ Список трекеров справа с их текущими координатами и временем обновления.
2. Страница профиля :
◦ Верхняя часть с аватаром пользователя и основными контактными данными.
◦ Список трекеров с возможностью редактирования и удаления.
◦ Кнопка "Добавить трекер".
3. Страница истории :
◦ Верхняя панель с выбором временного диапазона.
◦ Карта с отображением маршрута перемещений.
◦ Временная шкала внизу для навигации по истории.
4. Страница геозон :
◦ Карта с инструментами для создания и редактирования геозон.
◦ Список трекеров, которые будут отслеживаться в этой зоне.
◦ Настройки уведомлений.
5. Процесс разработки
1. Планирование :
◦ Определение MVP (минимально жизнеспособного продукта).
◦ Разработка прототипа интерфейса с использованием Figma.
◦ Составление технического задания.
2. Разработка Backend :
◦ Создание API для работы с трекерами, геозонами и историей.
◦ Интеграция с сервисами push-уведомлений (Firebase).
◦ Настройка безопасности (JWT).
3. Разработка Frontend :
◦ Реализация интерфейса согласно прототипу.
◦ Интеграция с OpenStreetMap API.
◦ Реализация функционала геозон и истории перемещений.
4. Тестирование :
◦ Unit-тестирование кода.
◦ Интеграционное тестирование.
◦ Проверка производительности.
5. Релиз :
◦ Подготовка приложения к публикации в App Stor
Функциональный результат
• Пользователь может легко отслеживать местоположение своих трекеров в реальном времени.
• История перемещений сохраняется и может быть просмотрена за любой период.
• Геозоны позволяют получать уведомления о важных событиях.
• Простой и удобный интерфейс для управления профилями и настройками.
Дизайнерский результат
• Чистый и понятный интерфейс с использованием современных UI/UX принципов.
• Цветовая палитра соответствует корпоративному стилю.
• Все элементы управления имеют интуитивно понятное расположение.
Технический результат
• Высокая скорость работы благодаря оптимизации запросов к API и работе с базой данных.
• Безопасность данных пользователей и трекеров благодаря использованию современных методов аутентификации и шифрования.
• Поддержка push-уведомлений для своевременного информирования пользователей.
Разработанное мобильное приложение стало полезным инструментом для родителей, работодателей и организаций, которым необходимо контролировать перемещения людей. Благодаря четкой архитектуре и продуманному дизайну, оно стало простым в использовании и эффективным в решении поставленных задач.