metalichesky / Family-tracking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Family Tracking

Проект для курсов Java в рамках производственной практики

Авторы: Атажанов Алексей и Булгаков Дмитрий

Руководитель: Бочкарёв Борис

Описание проекта

Проект 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.

Клиент-серверное взаимодействие: Alt text

Скриншоты

Десктопная версия (веб-приложение)

Начальная страница: Alt text

Главная страница с отметкой двух пользователей на карте: Alt text

Начальная страница: Alt text

Страница добавления в друзья: Alt text

Главная страница с отметкой пользователя на карте: Alt text

Мобильная версия (android приложение)

Авторизация в мобильном приложении: Alt text

Определение местоположения в мобильном приложении: Alt text

Определение трекинга в мобильном приложенииб на карте: Alt text

Определение трекинга в мобильном приложении, в таблице: Alt text

Главная страница веб-приложения, в мобильном браузере: Alt text

Отображение местоположения в веб-приложении, в мобильном браузере: Alt text

About


Languages

Language:JavaScript 44.4%Language:FreeMarker 24.8%Language:Java 19.1%Language:CSS 11.6%