Este projeto consiste em dois módulos:
uma aplicação web, escrita em C# (ASP.Net)
um aplicativo Android, escrito em Java, link: https://github.com/vsl700/GPSTrackerOnline
O objetivo deste projeto é, por exemplo, ajudar os pais a rastrear a localização dos seus filhos. Veja como funciona:
Os dispositivos rastreados (das crianças, por exemplo) devem ter o aplicativo ‘GPS Tracker – Online’ instalado
Os rastreadores (pais) devem estar cadastrados e logados no sistema, seja através do navegador web ou do aplicativo móvel
Os rastreadores devem criar registros para os dispositivos rastreados em suas contas, inserindo algum tipo de nome para cada dispositivo rastreado ('Meu Filho', 'Minha Esposa' etc.). Cada registro possui um código de 6 dígitos gerado aleatoriamente
Cada dispositivo rastreado deve inicialmente inserir o código de 6 dígitos correspondente para poder se conectar ao rastreador.
Os rastreadores podem ver a localização atual dos dispositivos alvo, bem como seu histórico de localização
Quando não estiver em uso, o serviço de rastreamento do aplicativo móvel pode ser encerrado para aumentar a vida útil da bateria
Caso o serviço de rastreamento do telefone alvo não esteja funcionando (esqueci de estar ligado), o rastreador pode enviar um SMS especial para o telefone alvo, que será detectado pelo aplicativo móvel e o aplicativo ativará o serviço
Caso não haja internet no dispositivo rastreado, o rastreador pode enviar um SMS especial para o telefone alvo e, em troca, o rastreador receberá um SMS contendo:
a localização GPS atual, bem como o histórico de localização, caso exista um serviço GPS disponível no telefone alvo
a última localização GPS detectada, bem como o histórico de localização, caso não haja serviço GPS disponível no telefone alvo
O projeto usa 'SignalR' para a conexão websocket (para localização atual) entre o servidor e os dispositivos (navegador e aplicativo móvel). A aplicação web usa 'MS Sql Server 2019' como banco de dados, enquanto a aplicação móvel usa 'SQLite'. Os mapas utilizados na página web e no aplicativo móvel são do Google.
Na imagem abaixo você pode ver como diferentes dispositivos se conectam ao aplicativo web
(chamador = rastreador)
A imagem abaixo mostra a estrutura do banco de dados da aplicação web (todas as tabelas possuem uma coluna 'id' como chave primária)
A imagem abaixo mostra a estrutura do banco de dados do aplicativo móvel (a tabela 'Locations' possui uma coluna 'id' como chave primária)
Aqui você pode ver algumas capturas de tela da web e de aplicativos móveis
'phone1' e 'phone2' estão online e visíveis no mapa