Проект Family Tracking проедставляет собой социальную сеть с возможностью отслеживания местоположения друзей. Пользователю для участия в сети необходимо зарегистрироваться и авторизоваться. После этого пользователю будет доступны функции сервиса, такие как:
- поиск среди всех пользователей сети своих знакомых;
- добавление нужных пользователей в друзья;
- отображение местоположения выбранных друзей за выбранный период;
- отправка данных о собственном местоположении с использованием мобильного устройства.
Местоположение друзей можно наглядно просматривать на веб-странице, где отображается интерактивная карта. Для того, чтобы друзья могли знать, где находится пользователь, он должен запустить на своём мобильном устройстве приложение. Мобильное приложение, даже находясь в фоновом режиме, будет отправлять данные на сервер социальной сети, который, в свою очередь, будет отправлять эти данные только друзьям.
- Backend: Java, Spring Boot, FreeMarker Template, MySQL;
- Frontend: HTML5, JavaScript (jQuery, Angular JS), CSS, Bootstrap 4;
- Mobile: Android(Java), Retrofit, SQLite
Программное обеспечение состоит из серверной и клиентской частей, между которыми передаются данные по защищённому шифрованием протоколу HTTPS.
Серверная часть, реализованная на Spring Framework, отвечает за обработку REST запросов, получение данных из базы данных MySQL и отправку их клиентской части в формате JSON. Помимо выполнения серверной частью функций CRUD-приложения, серверная часть также отвечает за управление доступом к данным посредством использования модуля Spring Security.
REST запросы от клиентской части сервер обрабатывает с помощью реализованных контроллеров, которые в целом образуют API – интерфейс, позволяющий «общаться» с сервером.
Модуль Security производит все действия, необходимые для обеспечения аутентификации пользователя с применением различных ролей. Также Security ограничивает доступ неавторизованных пользователей к конфиденциальной информации. Для аутентификации пользователя применяется метод Basic Access Authentication, что привело к необходимости использования SSL.
Клиентская часть представляет из себя веб-приложение и мобильное приложение. Веб-приложение состоит из нескольких страниц с HTML разметкой, CSS и Bootstrap стилями, а наполнение данными производится скриптами JavaScript с применением фреймворка Angular JS. Отправка запросов серверу и приём ответов также производятся посредством методов Angular JS. Отображение местоположение пользователя на карте осуществляется с применением 2Gis API, который предоставляет широкий круг возможностей по визуализации данных.
Мобильное приложение, реализованное для ОС Android и являющееся клиентской частью, взаимодействует с сервером посредством библиотеки сетевого взаимодействия Retrofit, отображает местоположение пользователя на карте, а также хранит данные пользователя в базе данных SQLite, в памяти устройства. Мобильное приложение состоит из двух «активити»: одно - для авторизации, другое – для основного функционала. Для визуализации карты, местоположения пользователя и траектории его перемещения используется интерфейс 2Gis API.
Клиент-серверное взаимодействие:
Главная страница с отметкой двух пользователей на карте:
Главная страница с отметкой пользователя на карте:
Авторизация в мобильном приложении:
Определение местоположения в мобильном приложении:
Определение трекинга в мобильном приложенииб на карте:
Определение трекинга в мобильном приложении, в таблице:
Главная страница веб-приложения, в мобильном браузере:
Отображение местоположения в веб-приложении, в мобильном браузере: