Minerita Trip Control | Atualizado em 06/03/2026
O sistema possui 3 partes integradas:
google-services.json)..\gradlew.bat clean assembleDebug
APK gerado em
app/build/outputs/apk/debug/app-debug.apk.
.\gradlew.bat assembleDebug
.\gradlew.bat assembleRelease
adb devices
adb install -r app\build\outputs\apk\debug\app-debug.apk
Esta aba detalha tudo que o sistema precisa no Firebase: plano, serviços, estrutura das coleções, índices, regras, custos e lista de verificação de produção.
Recomendado para produção: Blaze Firestore + Functions + FCM| Plano | Quando usar | Situacao para este projeto |
|---|---|---|
| Spark (gratuito) | Estudo, prototipo e testes pequenos | Uso temporario apenas |
| Blaze (pague conforme o uso) | Operação real com funções na nuvem e escala variável | Plano recomendado/necessário em produção |
Para este sistema completo (chamadas, push, automações e integracao externa), manter projeto com billing ativo no plano Blaze.
| Coleção | Finalidade | Campos principais |
|---|---|---|
users |
Usuários e perfis |
email, name, role,
truckPlate, barcode,
driverStatus, isSuplente,
suplenteGroup, fcmToken,
isActive
|
trucks |
Cadastro de caminhões |
plate, barcode,
driverName, company,
isActive, totalTrips
|
trips |
Viagens registradas |
truckId, truckPlate,
tripType, prefix,
dateTime, operatorName,
isDuplicate
|
prefixes |
Prefixos ativos/histórico |
prefix, prefixBase,
client, isActive,
createdAt, transferValue
|
calls |
Chamadas por grupo |
group, status,
startTime, confirmed,
rejected, maxConfirmations
|
fcm_tokens |
Tokens de dispositivos | token e metadados de dispositivo/usuário |
notifications, onlineUsers,
accessLogs, qr_code_error_logs,
app_updates
|
Suporte operacional, auditoria e atualização remota | Campos variam por modulo |
trips: truckPlate (ASC) + dateTime (DESC)trips: truckId (ASC) + dateTime (DESC)trips: tripType (ASC) + dateTime (DESC)prefixes: isActive (ASC) + createdAt (DESC)qr_code_error_logs: errorType (ASC) + timestamp (DESC)
qr_code_error_logs: operatorEmail (ASC) + timestamp
(DESC)
Sem esses índices, consultas com where + orderBy podem
falhar em produção.
O arquivo atual de regras esta permissivo para desenvolvimento
(allow read, write: if true), o que não e seguro para
produção.
request.auth != null).calls apenas para admin.trips para operator/admin.Funções principais em functions/index.js:
sendCallNotificationnotifySuplentesVariáveis opcionais para WhatsApp/Twilio:
twilio.account_sidtwilio.auth_tokentwilio.whatsapp_numberfirebase functions:config:set twilio.account_sid="..." twilio.auth_token="..." twilio.whatsapp_number="+14155238886"
firebase deploy --only functions
Se Twilio não estiver configurado, o sistema usa alternativa por
link wa.me.
Esta aba descreve apenas o ambiente onde sua página esta hospedada:
https://lvatech.com/. O foco aqui e mostrar o que ja
esta ativo no servidor e o que reforca a seguranca da página em
produção.
| Item | Status identificado | Impacto |
|---|---|---|
| Dominio principal | https://lvatech.com/ |
Ponto oficial de acesso ao sistema web. |
| Plataforma de hospedagem | platform: hostinger / panel: hpanel |
Indica gerenciamento da aplicação em ambiente Hostinger. |
| Servidor web | Server: LiteSpeed |
Entrega de páginas com bom desempenho e suporte moderno de protocolo. |
| Protocolo / recurso | Objetivo técnico | Status no domínio |
|---|---|---|
HTTPS (TLS 1.2+) |
Criptografia de ponta a ponta entre navegador e servidor. | Ativo em https://lvatech.com/. |
HTTP/3 (alt-svc h3) |
Comunicao mais eficiente e resiliente em rede instavel. | alt-svc anunciando h3 na porta 443. |
Content-Security-Policy |
Diretriz de seguranca para carregamento de conteúdo. | Ativo com upgrade-insecure-requests. |
| Redirecionamento para HTTPS | Evita permanencia do usuário em versão insegura por HTTP. | Requisicao iniciada em HTTP chega no domínio HTTPS. |
ETag e Last-Modified |
Controle de cache com validação de recurso. | Ativos; ajudam estabilidade de entrega e reduzem carga. |
Observacao: os dados acima foram levantados diretamente das respostas HTTP do domínio em 06/03/2026.
| Camada de protecao | Beneficio direto | Resultado pratico |
|---|---|---|
| Canal seguro por TLS | Protege dados em trânsito entre usuário e servidor. | Maior confiabilidade para login, sessão e navegação. |
| Politica CSP ativa | Forca conteúdo seguro e reduz carregamento inseguro. | Página mais consistente e com melhor postura de seguranca. |
| Suporte a HTTP/3 | Melhora performance em redes móveis e conexões variáveis. | Experiencia mais estavel para usuários em campo. |
| Redirecionamento para HTTPS | Padroniza acesso seguro ao domínio oficial. | Reduz erros de acesso e fortalece a confianca do usuário. |
| Cache inteligente de recursos | Acelera carregamento e reduz consumo de banda. | Maior disponibilidade e menor custo operacional de entrega. |
Esta aba resume o que precisa para migrar o sistema web para outro ambiente de hospedagem, incluindo servidor próprio de empresa.
| Item | O que preparar | Observacao |
|---|---|---|
| Codigo web | Arquivos HTML, CSS, JS e imagens atuais do projeto. | Garantir mesma estrutura de pastas da versão em produção. |
| Dominio e DNS | Apontamento de A, AAAA e/ou CNAME. |
Planejar janela de troca para reduzir indisponibilidade. |
| Certificado SSL | Certificado valido para HTTPS (ex.: Let's Encrypt). | Ativar renovacao automatica do certificado. |
| Servidor HTTP | Nginx, Apache ou LiteSpeed configurado para site estático. | Habilitar compressão e cache para melhor desempenho. |
| Integrações Firebase | Manter credenciais e endpoints do Firebase no frontend. | google-services.json e chaves devem permanecer validas. |
| Camada | Requisito mínimo | Boas práticas |
|---|---|---|
| Infraestrutura | VM ou servidor Linux com acesso público controlado. | Separar ambientes: homologação e produção. |
| Rede | Firewall liberando apenas portas 80/443. |
Whitelist de administração via VPN ou IP fixo. |
| Aplicação web | Deploy automatizado via Git ou pipeline CI/CD. | Versionamento e rollback rápido em caso de incidente. |
| Segurança | TLS ativo, logs centralizados e monitoramento. | Rotina de patch do sistema operacional e servidor web. |
| Operação | Backup diario do conteúdo e configurações. | Teste periódico de restauracao e plano de continuidade. |
Aqui voce encontra todas as telas, para que servem, quem usa e como funciona cada uma.
| Tela | Quem usa | Como funciona |
|---|---|---|
index.html |
Todos os perfis | Entrada principal, autenticação e acesso aos módulos. |
menu.html |
Admin/Operador | Menu central para navegar entre cadastro, relatórios e dashboards. |
operador.html |
Operador | Seleciona tipo de viagem, carrega prefixo ativo, escaneia QR e registra viagem. |
cadastro.html |
Admin | Cadastro de motorista/caminhão com dados operacionais. |
cadastroinicial.html |
Admin | Cria e ativa prefixo inicial do período. |
gerenciar_motoristas.html |
Admin | Edita motoristas, corrige cadastro e mantem base atualizada. |
prefixo.html |
Admin/Faturamento | Relatório por prefixo e caminhão com filtros e análise. |
contabil.html |
Admin/Faturamento | Painel financeiro e consolidacao por tipo de viagem e prefixo. |
dashboard_trucks.html |
Admin | Gráficos de desempenho por caminhão e prefixo. |
online.html |
Admin | Monitoramento de usuários online em tempo real e contexto da sessão. |
presenca.html |
Admin/Motorista | Controle de presença/disponibilidade e fluxo de chamadas. |
| Tela | Rota | Como funciona |
|---|---|---|
| LoginScreen | login |
Autenticação e redirecionamento por perfil. |
| RegisterScreen | register |
Cadastro de usuário e definição de papel. |
| AdminDashboardScreen | admin_dashboard |
Painel central de administração e acesso a módulos. |
| DriverDashboardScreen | driver_dashboard |
Painel do motorista com acesso a presença e status. |
| OperatorDashboardScreen | operator_dashboard |
Controle de leitura, prefixo e progresso de viagens. |
| QRScannerScreen | qr_scanner |
Leitura de QR e registro da viagem. |
| PrefixScreen | prefix_screen |
Gerenciamento de prefixos do período. |
| DriverRegisterScreen | driver_register_screen |
Cadastro de motorista no app. |
| TrucksListScreen | trucks_list_screen |
Lista de caminhões e motoristas ativos. |
| TrucksWithTripsScreen | trucks_with_trips_screen |
Cruza caminhões com viagens registradas. |
| ReadingHistoryScreen | reading_history_screen |
Histórico de leituras para conferência e auditoria. |
| TripsByDriverScreen | trips_by_driver_screen |
Análise de viagens por motorista. |
| AllTripsScreen | all_trips_screen |
Visão completa de todas as viagens (admin). |
| DriverPresenceScreen | driver_presence_screen |
Gestão de presença e resposta de chamadas. |
| CallTrucksScreen | call_trucks_screen |
Criação e acompanhamento de chamadas por grupo. |
Prints reais do projeto com as três telas principais: Login, Admin e Operador.
| Bloco da tela | Funcao operacional |
|---|---|
| Cabecalho (Descargas) | Mostra operador logado, prefixo atual e atalhos rápidos de operacao. |
| Card de progresso | Exibe viagens realizadas no prefixo, total esperado e calculo de vagões preenchidos. |
| Linha de identificacao | Mostra operador, prefixo e cliente para conferência antes da leitura. |
| Última atualização | Indica o horário mais recente de sincronizacao dos dados na tela. |
| Card da viagem | Apresenta status, motorista, data/hora, modalidade, placa, prefixo, vagões e usuário que registrou. |
| Botoes flutuantes | Permitem alternar modo de viagem e iniciar leitura QR com rapidez. |
| Funcao | O que faz |
|---|---|
| Autenticação de usuário | Valida e-mail e senha no Firebase Authentication. |
| Validacao de campos | Habilita tentativa de acesso somente com dados obrigatórios preenchidos (e-mail e senha). |
| Controle de acesso por perfil | Direciona para a tela correta de acordo com o papel do usuário (Admin, Operador ou Motorista). |
| Acesso ao cadastro | Disponibiliza o caminho "Nao tem uma conta? Cadastre-se aqui" para criar novo usuário. |
| Mensagens de erro | Exibe feedback quando login falha (credenciais invalidas ou sem permissão). |
| Funcao | O que faz |
|---|---|
| Painel central de operacao | Exibe resumo operacional com última atualização, prefixo ativo e volume de viagens por período. |
| Gestao de prefixos | Permite visualizar e atualizar prefixo ativo, cliente e dados de período. |
| Navegacao para módulos | Acessa cadastro, relatórios, lista de caminhões, chamadas e auditoria. |
| Controle de sessão | Permite atualizar dados em tempo real e encerrar sessão com seguranca. |
operador.html)
| Funcao | O que faz |
|---|---|
showLogin() / showDashboard() |
Controla exibicao entre tela de login e painel do operador. |
selectTripType(type) |
Seleciona tipo de viagem (carregamento, transferência, complemento). |
updatePrefixDisplay() |
Atualiza prefixo visivel conforme tipo de viagem e disponibilidade de prefixo TRA. |
loadPrefixes() |
Carrega prefixo ativo de carregamento em tempo real no Firestore. |
loadTransferPrefix() |
Carrega prefixo de transferência (TRA) em tempo real. |
loadTrips() |
Escuta e carrega viagens recentes para lista e estatisticas. |
renderTrips(trips) |
Renderiza lista de viagens na interface do operador. |
updateStats(trips) |
Calcula total do dia, últimas 24h e total geral (ignorando duplicatas). |
| Card de progresso de viagens |
Exibe progresso no formato realizadas / limite e
calcula vagões preenchidos automaticamente.
|
openScanner() / closeScanner()
|
Abre/fecha scanner QR com biblioteca
html5-qrcode.
|
handleQRCodeScanned(qrCodeText) |
Processa leitura, valida duplicata, define prefixo correto e grava viagem no Firestore. |
functions/index.js)
| Funcao | O que faz |
|---|---|
sendCallNotification |
Ao criar chamada em calls, envia notificações
push para motoristas disponíveis.
|
notifySuplentes |
Quando necessário, aciona suplentes com base em recusas/indisponibilidade. |
sendWhatsAppMessage |
Envia WhatsApp via Twilio ou gera link wa.me como
alternativa.
|
extractTruckNumber / getTruckGroup
|
Identifica numero e grupo do caminhao para regras de chamada. |
Esta aba foi criada para orientar operadores no uso correto do app em rotina normal e em situação de falha. O objetivo é padronizar ação rápida no local, reduzir tempo parado e manter registro das ocorrências.
Uso diário no campo Resposta rápida a falhas Operação offline-first| Sintoma | Ação imediata do operador | Validação antes de escalar |
|---|---|---|
| Erro ao fazer login | Confirmar e-mail/senha, checar internet e tentar novamente. | Testar login em outro aparelho autorizado. |
| QR não lê ou leitura falha | Limpar câmera, ajustar iluminação e distância, tentar de novo. | Verificar se outro QR é lido no mesmo aparelho. |
| Viagem não aparece no histórico | Atualizar tela e aguardar sincronização por até 60 segundos. | Conferir conexão e consultar painel web/admin. |
| Tela congelada ou app sem resposta | Fechar app, abrir novamente e repetir operação com calma. | Confirmar se houve registro parcial da viagem. |
| Sem conexão com rede | Continuar operação normalmente e registrar as viagens no app. | Quando a rede voltar, confirmar sincronização no histórico/painel. |
Checklist rápido do chamado:
- Nome do operador
- Aparelho (marca/modelo)
- Horário exato da falha
- Tela/função com problema
- Print ou vídeo curto do erro
- Situação da internet no momento
Importante: em caso de dúvida sobre duplicidade, validar sempre com o painel administrativo antes de repetir leitura QR.
Sem internet, o foco é manter produção e preservar dados locais. A ação principal é garantir sincronização assim que a rede retornar.
Este procedimento deve ser executado pela equipe de desenvolvimento quando houver falha recorrente, perda de sincronização, travamento crítico ou divergência entre app e painel.
| Etapa técnica | Ação do desenvolvedor | Resultado esperado |
|---|---|---|
| Triagem inicial | Conferir chamado com horário, usuário, aparelho, versão do app e evidências. | Falha reproduzível e contexto fechado. |
| Validação de ambiente | Checar status do Firebase (Auth, Firestore, Functions) e conectividade da região. | Descartar indisponibilidade externa. |
| Análise de logs | Revisar logs do app, Crashlytics/logcat e funções em nuvem no período do incidente. | Identificação da causa raiz. |
| Fluxo offline/sync | Validar fila local, regra de deduplicação e reconciliação na volta da rede. | Garantia de consistência sem perda/duplicidade. |
| Correção | Aplicar hotfix, adicionar tratamento de erro e mensagem clara para operador. | Falha controlada e melhor UX em campo. |
| Validação final | Testar cenário online, offline e reconexão; publicar versão e atualizar esta I.T. | Correção estável documentada. |