Giter Club home page Giter Club logo

family-tracking's Introduction

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

family-tracking's People

Contributors

metalichesky avatar teamdreamrus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.