이 프로젝트는 두 가지 모듈로 구성됩니다.
C#(ASP.Net)으로 작성된 웹 애플리케이션
Java로 작성된 Android 애플리케이션 링크: https://github.com/vsl700/GPSTrackerOnline
예를 들어, 이 프로젝트의 목표는 부모가 자녀의 위치를 추적하도록 돕는 것입니다. 작동 방식은 다음과 같습니다.
추적되는 장치(예: 어린이)에는 'GPS Tracker - Online' 애플리케이션이 설치되어 있어야 합니다.
추적자(부모)는 웹 브라우저나 모바일 앱을 통해 시스템에 등록하고 로그인해야 합니다.
추적자는 추적되는 각 장치에 일종의 이름('내 아들', '내 아내' 등)을 입력하여 계정에 추적되는 장치에 대한 기록을 생성해야 합니다. 각 기록에는 무작위로 생성된 6자리 코드가 있습니다.
추적된 각 장치는 처음에 해당 6자리 코드를 입력해야 추적기와 연결할 수 있습니다.
추적기는 대상 장치의 현재 위치와 위치 기록을 볼 수 있습니다.
사용하지 않을 때에는 배터리 수명 연장을 위해 모바일 앱의 추적 서비스가 종료될 수 있습니다.
대상 전화의 추적 서비스가 실행되지 않는 경우(켜는 것을 잊은 경우) 추적기는 대상 전화로 특수 SMS를 보낼 수 있으며, 이는 모바일 앱에서 감지되고 앱에서 서비스를 켭니다.
추적되는 장치에 인터넷이 없는 경우 추적기는 대상 휴대폰으로 특수 SMS를 보낼 수 있으며 그 대가로 추적기는 다음 내용이 포함된 SMS를 받게 됩니다.
현재 GPS 위치 및 위치 기록(대상 휴대폰에서 GPS 서비스를 사용할 수 있는 경우)
마지막으로 감지된 GPS 위치 및 위치 기록(대상 휴대폰에서 GPS 서비스를 사용할 수 없는 경우)
이 프로젝트는 서버와 장치(브라우저 및 모바일 앱) 간의 웹소켓 연결(현재 위치에 대한)에 'SignalR'을 사용합니다. 웹 애플리케이션은 데이터베이스로 'MS SQL Server 2019'를 사용하는 반면, 모바일 애플리케이션은 'SQLite'를 사용합니다. 웹페이지와 모바일 앱에 사용된 지도는 Google에서 제공한 것입니다.
아래 그림에서 다양한 장치가 웹 앱에 연결되는 방식을 볼 수 있습니다.
(발신자 = 추적자)
아래 그림은 웹 애플리케이션의 데이터베이스 구조를 보여줍니다. (모든 테이블에는 기본 키로 'id' 열이 있습니다)
아래 그림은 모바일 애플리케이션의 데이터베이스 구조를 보여줍니다('Locations' 테이블에는 기본 키로 'id' 열이 있습니다).
여기에서 웹 및 모바일 애플리케이션의 일부 스크린샷을 볼 수 있습니다.
'phone1'과 'phone2'는 온라인 상태이며 지도에 표시됩니다.