Estrutura completa para conectar motoristas e passageiros usando PHP, MySQL e Firebase
Endpoints da API
Arquivos de configuraΓ§Γ£o
Servidor WebSocket
Jobs agendados
| Tabela | DescriΓ§Γ£o | Campos Principais |
|---|---|---|
| usuarios | UsuΓ‘rios (motoristas e passageiros) | id, user_id, perfil, nome, email, celular, senha, status, created_at |
| motoristas | Dados especΓficos de motoristas | user_id, cnh, crlv, veiculo_placa, veiculo_modelo, avaliacao, online |
| corridas | Registro de todas as corridas | id, passageiro_id, motorista_id, origem_lat, origem_lng, destino_lat, destino_lng, status, valor, distancia, created_at |
| localizacoes | LocalizaΓ§Γ£o em tempo real dos motoristas | motorista_id, latitude, longitude, heading, speed, updated_at |
| solicitacoes | Pedidos de corrida em aberto | id, passageiro_id, origem_lat, origem_lng, destino_lat, destino_lng, status, created_at |
| avaliacoes | AvaliaΓ§Γ΅es motorista/passageiro | id, corrida_id, avaliador_id, avaliado_id, nota, comentario, created_at |
| pagamentos | Registro de pagamentos | id, corrida_id, passageiro_id, motorista_id, valor, metodo, status, created_at |
| notificacoes | Push notifications | id, user_id, titulo, mensagem, lida, created_at |
| fcm_tokens | Tokens de dispositivos | id, user_id, token, dispositivo, updated_at |
| chat_mensagens | Mensagens entre motorista e passageiro | id, corrida_id, remetente_id, destinatario_id, mensagem, lida, created_at |
Eventos:
NotificaΓ§Γ΅es push para motoristas e passageiros
LocalizaΓ§Γ£o em tempo real dos motoristas
Armazenamento de fotos e documentos
AutenticaΓ§Γ£o via telefone (opcional)
// firebase-config.js
export default {
apiKey: "AIzaSy...",
authDomain: "federalpro.firebaseapp.com",
projectId: "federalpro",
storageBucket: "federalpro.appspot.com",
messagingSenderId: "123456789",
appId: "1:123456789:web:abcdef",
databaseURL: "https://federalpro-default-rtdb.firebaseio.com/"
};
App passageiro β API PHP β WebSocket β App motorista
WebSocket β FCM β App motorista
App motorista β API PHP β WebSocket β App passageiro
App motorista β Firebase Realtime Database
App passageiro β Firebase Realtime Database
App motorista β API PHP β WebSocket β App passageiro
App passageiro β API PHP β Gateway
Apps β API PHP
β Servidor PHP configurado
β Banco MySQL criado
β AutenticaΓ§Γ£o (Login/Register)
β App motorista (mapa + localizaΓ§Γ£o)
β¬ Criar app passageiro
β¬ API de solicitaΓ§Γ£o de corrida
β¬ Sistema de notificaΓ§Γ΅es (FCM)
β¬ WebSocket para tempo real
β¬ Sistema de pagamentos
β¬ AvaliaΓ§Γ£o motorista/passageiro
β¬ Chat entre motorista e passageiro
β¬ HistΓ³rico de corridas
β¬ Criptografia de dados
β¬ VerificaΓ§Γ£o de identidade
β¬ BotΓ£o de pΓ’nico
β¬ Compartilhamento de rota
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β 1. PASSAGEIRO 2. API PHP 3. WEB SOCKET β β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β π± App Passageiro β βββββββ β POST /request β βββββββ β ws://server ββ β β "Quero uma corrida"β β Salva no MySQL β β Emite evento ββ β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β β 4. NOTIFICAΓΓO 5. MOTORISTA 6. FIREBASE β β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β π FCM Push β βββββββ β π± App Motorista β βββββββ β Realtime DB ββ β β "Nova corrida..."β β "Aceitar corrida"β β Atualiza posiΓ§Γ£oββ β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β β 7. EM TEMPO REAL 8. PASSAGEIRO 9. PAGAMENTO β β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β π LocalizaΓ§Γ£o β βββββββ β π± App Passageiro β βββββββ β π³ Gateway ββ β β do motorista β β Acompanha rota β β "Pagamento OK" ββ β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β β 10. AVALIAΓΓO 11. HISTΓRICO 12. FIM β β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β β 5 estrelas β βββββββ β π MySQL β βββββββ β β Corrida ββ β β Motorista avalia β β Salva no banco β β Finalizada! ββ β βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ