Aplicativo mobile Android para cadastro e rastreamento de pedidos/encomendas. Permite ao usuário registrar compras, acompanhar o status de entrega e visualizar o histórico completo de movimentações, tudo integrado a um servidor remoto via Web Services em PHP.
O app possui dois perfis de acesso na tela inicial:
- Cliente — pode cadastrar e consultar seus pedidos
- Administrador — pode selecionar um pedido e inserir novas atualizações de rastreio
- Cadastrar Pedido — registra um novo pedido com código de rastreio, transportadora, método de entrega, origem, destino e previsão de entrega
- Consultar Pedido — seleciona o pedido pelo código e visualiza o histórico completo de eventos (data, local, status e detalhes)
- Módulo Admin — seleciona um pedido existente e cadastra novas atualizações de rastreio informando data, local, status e detalhes
| Camada | Tecnologia |
|---|---|
| App Mobile | Java (Android nativo) |
| Build | Gradle / Android Studio |
| Web Service | PHP |
| Banco de Dados | MySQL / MariaDB |
| Comunicação | HTTP + JSON |
O banco possui duas tabelas principais com relacionamento 1:N — um produto pode ter vários eventos de rastreio.
Armazena os pedidos cadastrados.
| Coluna | Tipo | Descrição |
|---|---|---|
id |
int(11) AUTO_INCREMENT | Chave primária |
codigorastreio |
varchar(50) | Código único de rastreio (UNIQUE) |
empresa |
varchar(100) | Nome da transportadora |
servico |
varchar(100) | Tipo de serviço (ex: Normal, Expresso) |
status |
varchar(50) | Status atual do pedido |
origem |
varchar(150) | Cidade/local de origem |
destino |
varchar(150) | Cidade/local de destino |
datadeprevistadeentraga |
date | Data prevista de entrega |
CREATE TABLE `produto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`codigorastreio` varchar(50) NOT NULL,
`empresa` varchar(100) DEFAULT NULL,
`servico` varchar(100) DEFAULT NULL,
`status` varchar(50) DEFAULT NULL,
`origem` varchar(150) DEFAULT NULL,
`destino` varchar(150) DEFAULT NULL,
`datadeprevistadeentraga` date DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `codigorastreio` (`codigorastreio`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;Armazena o histórico de movimentações de cada pedido.
| Coluna | Tipo | Descrição |
|---|---|---|
id |
int(11) AUTO_INCREMENT | Chave primária |
produto_id |
int(11) | Chave estrangeira referenciando produto.id |
data |
datetime | Data e hora do evento |
local |
varchar(150) | Local do evento |
status |
varchar(100) | Status nesse evento (ex: Enviado, Em trânsito) |
detalhes |
text | Informações adicionais sobre o evento |
CREATE TABLE `evento` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`produto_id` int(11) NOT NULL,
`data` datetime DEFAULT NULL,
`local` varchar(150) DEFAULT NULL,
`status` varchar(100) DEFAULT NULL,
`detalhes` text DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `produto_id` (`produto_id`),
CONSTRAINT `evento_ibfk_1` FOREIGN KEY (`produto_id`) REFERENCES `produto` (`id`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;produto (1) ──────< evento (N)
produto.id = evento.produto_id
ON DELETE CASCADE / ON UPDATE CASCADE
Ao deletar um produto, todos os seus eventos são automaticamente removidos.
A comunicação entre o app Android e o banco de dados é feita exclusivamente via Web Services em PHP, que recebem e retornam dados em formato JSON.
App Android
│
│ HTTP POST (JSON)
▼
Web Service PHP
│
│ Query SQL
▼
Banco MySQL (correios_mobile)
│
│ { "status": "ok" } ou { "status": "erro" }
▼
App Android
Os arquivos PHP ficam na pasta correios/ dentro do projeto:
| Arquivo | Função |
|---|---|
cadastra_produto.php |
Cadastra um novo pedido no banco |
cadastra_evento.php |
Cadastra uma nova atualização de rastreio |
consulta_produtos.php |
Retorna a lista de todos os produtos |
consulta_eventos.php |
Retorna o histórico de eventos de um produto pelo produto_id |
A URL base das requisições do app deve apontar para essa pasta, ex:
http://192.168.x.x/correios/cadastra_produto.php
- Android Studio instalado
- Servidor local com PHP e MySQL (ex: XAMPP ou WAMP)
- PHP 8.x / MariaDB 10.x
-
Clone o repositório
git clone https://github.com/jvsobroza/App-Compra-Rastreio.git
-
Configure o banco de dados
- Inicie o servidor MySQL
- Crie o banco
correios_mobile - Execute os scripts SQL das tabelas
produtoeeventodescritos acima
-
Configure os Web Services
- Copie os arquivos PHP para a pasta do servidor (ex:
htdocsno XAMPP) - Verifique as credenciais de conexão nos arquivos PHP (
$servidor,$usuario,$senha,$banco)
- Copie os arquivos PHP para a pasta do servidor (ex:
-
Configure o endereço do servidor no App
- Abra o projeto no Android Studio
- Localize as classes responsáveis pelas chamadas HTTP
- Atualize a URL base para o IP do seu servidor (ex:
http://192.168.x.x/webservice/)
-
Execute o app
- Conecte um dispositivo Android ou inicie um emulador
- Clique em Run no Android Studio
App-Compra-Rastreio/
├── .idea/ → Configurações do Android Studio
├── app/ → Código-fonte principal
│ └── src/
│ └── main/
│ ├── java/ → Activities, Adapters, chamadas ao Web Service
│ └── res/ → Layouts XML, strings, drawables
├── gradle/wrapper/ → Wrapper do Gradle
├── build.gradle → Configuração de build do projeto
├── settings.gradle → Configurações do projeto
└── README.md
Desenvolvido por João Victor Sobroza Dal Ross
🔗 github.com/jvsobroza