Vehicle Usage
The skeleton application for the Laravel framework.
#🚗 Sistema de Gestão de Veículos
Sistema completo de gestão de veículos desenvolvido com Laravel 12 e Filament v3, oferecendo controle total sobre frota, usuários e uso de veículos com interface moderna, dashboard analítico avançado e funcionalidades inovadoras.
#📋 Índice
- Características
- Dashboard Analítico
- Funcionalidades
- WhatsApp Integration
- Tecnologias
- Instalação
- Configuração
- Uso
- Screenshots
- Estrutura
- API
- Contribuição
- Licença
#✨ Características
#🎯 Interface Moderna e Profissional
- 100% em Português Brasileiro
- Interface construída com Filament v3
- Design responsivo e intuitivo
- Tema moderno com cores semânticas
- Dashboard analítico avançado com widgets em tempo real
#🔐 Segurança Avançada
- Autenticação baseada em FilamentUser contract
- Controle de acesso por usuário ativo/inativo
- Sistema de permissões (supervisor/usuário comum)
- Hash seguro de senhas com validação
#📊 Relatórios e Analytics
- Dashboard com 4 widgets personalizados
- Estatísticas em tempo real com atualização automática
- Filtros avançados com 12+ opções
- Exportação de dados em CSV
- Cálculos automáticos de distância e duração
- Alertas visuais para situações críticas
#⚡ Performance Otimizada
- Eager loading nos relacionamentos
- Cache Redis integrado
- Polling em tempo real (30s/60s)
- Paginação inteligente
- Widgets otimizados com queries eficientes
#📱 WhatsApp Integration (Roadmap)
- Registro de uso via mensagens simples
- Menus estáticos sem IA para facilidade
- Check-in/Check-out automático
- Notificações de alertas importantes
#📊 Dashboard Analítico
#🎛️ Widgets de Estatísticas Principais
8 cards informativos organizados em 4 colunas responsivas:
#📅 Estatísticas Diárias
- Usos Hoje - Total de usos iniciados hoje
- Em Uso Agora - Veículos atualmente em circulação
- Finalizados Hoje - Usos concluídos no dia
#📈 Estatísticas Semanais
- Usos Esta Semana - Total de utilizações
- KM Esta Semana - Quilometragem percorrida acumulada
#📊 Estatísticas Mensais
- Usos Este Mês - Volume mensal de utilizações
- Veículos Ativos - Proporção de frota utilizada
#👥 Estatísticas Gerais
- Usuários Ativos - Total de usuários habilitados
#🚨 Widget de Alertas e Atenções
5 indicadores críticos com cores semânticas:
- 🔴 Licenciamentos Vencidos - Situação urgente
- 🟡 Vencimento Próximo - Alertas de 30 dias
- 🟠 Em Manutenção - Veículos indisponíveis
- 🔴 Usos Prolongados - Mais de 24h sem devolução
- 🟡 Sem KM Final - Auditoria necessária (últimos 7 dias)
#📈 Gráfico de Linha Interativo
- Usos dos Últimos 7 Dias com dados comparativos
- Linha azul: usos iniciados
- Linha verde: usos finalizados
- Interface responsiva e tooltips informativos
#🏆 Top 5 Veículos Mais Utilizados
- Ranking mensal dos veículos
- Badges coloridos por intensidade:
- 🟢 Verde: 1-4 usos (baixo)
- 🟡 Amarelo: 5-9 usos (médio)
- 🔴 Vermelho: 10+ usos (alto)
- Status atual e quilometragem
#🚀 Funcionalidades
#🚗 Gestão de Veículos
- ✅ CRUD completo de veículos
- ✅ Controle de status (Ativo, Inativo, Manutenção)
- ✅ Rastreamento de quilometragem com atualização automática
- ✅ Controle de licenciamento com alertas visuais
- ✅ Filtros por marca, modelo, ano e status
- ✅ Validações automatizadas (placa única, ano válido)
#📋 Controle de Uso de Veículos
- ✅ Registro de saída e entrada com timestamps
- ✅ Controle de quilometragem inicial/final
- ✅ Cálculo automático de distância percorrida
- ✅ Controle de tempo de uso com alertas
- ✅ Finalização rápida diretamente na tabela
- ✅ Status visual dinâmico (Em uso, Finalizado, Atrasado)
- ✅ Polling em tempo real (30 segundos)
#🔍 12 Filtros Avançados Implementados
- Múltipla seleção de veículos e usuários
- Status do veículo (ativo, inativo, manutenção)
- Status do uso (em uso, finalizado, atrasado >24h)
- Período de saída com seletores de data
- Distância percorrida com valores min/max
- Períodos rápidos (hoje, ontem, semana, mês, ano)
- Busca textual na finalidade
- Uso prolongado (identificação automática >8h)
- Registros sem KM para controle de auditoria
- Uso em fim de semana para políticas especiais
- Layout colapsível para otimização de espaço
- Persistência na sessão para melhor UX
#👥 Gestão de Usuários
- ✅ CRUD completo com validações robustas
- ✅ Upload de avatar com fallback automático para ui-avatars.com
- ✅ Controle de departamento e cargo
- ✅ Sistema supervisor/usuário comum
- ✅ Ativação/desativação de contas com confirmação
- ✅ Redefinição de senhas via modal
- ✅ Contagem automática de usos por usuário
- ✅ Ações em lote (ativar/desativar múltiplos)
#📊 Relatórios e Exportações
- ✅ Exportação CSV com dados completos
- ✅ Dashboard com estatísticas integradas
- ✅ Ações em lote para usuários
- ✅ Filtros persistentes na sessão
- ✅ Ordenação personalizável
- ✅ Atualização em tempo real dos dados
#📱 WhatsApp Integration
#🔄 Fluxo de Mensagens Planejado
#Menu Principal
🚗 Sistema de Veículos Escolha uma opção: 1️⃣ - Utilizar Veículo 2️⃣ - Devolver Veículo 3️⃣ - Status dos Meus Usos 4️⃣ - Ajuda Digite o número da opção desejada.
#1️⃣ Utilizar Veículo
🚙 UTILIZAR VEÍCULO Por favor, envie a PLACA do veículo que deseja utilizar. Exemplo: ABC-1234
Após receber a placa:
✅ Veículo ABC-1234 encontrado!
📋 {Marca} {Modelo} - {Ano}
📊 Status: {Status}
Agora envie a QUILOMETRAGEM INICIAL do veículo.
Exemplo: 45230
Confirmação:
🎉 USO REGISTRADO COM SUCESSO!
🚗 Veículo: ABC-1234
👤 Usuário: {Nome}
🕐 Saída: {Data/Hora}
📊 KM Inicial: {KM}
⚠️ Lembre-se de devolver o veículo ao final do uso!
#2️⃣ Devolver Veículo
🏁 DEVOLVER VEÍCULO
Você possui uso ativo:
🚗 Veículo: ABC-1234
🕐 Saída: {Data/Hora}
📊 KM Inicial: {KM}
Envie a QUILOMETRAGEM FINAL do veículo.
Confirmação:
✅ VEÍCULO DEVOLVIDO COM SUCESSO!
📊 Relatório do Uso:
🚗 Veículo: ABC-1234
👤 Usuário: {Nome}
🕐 Saída: {Data/Hora Saída}
🏁 Entrada: {Data/Hora Entrada}
📏 Distância: {KM Final - KM Inicial} km
⏱️ Duração: {Horas}h {Minutos}m
Obrigado por usar nosso sistema! 🙏
#3️⃣ Status dos Usos
📊 SEUS USOS ATIVOS 🚗 ABC-1234 - Em uso há 2h 30m 🕐 Saída: 14:30 📊 KM Inicial: 45230 Envie "2" para devolver este veículo.
#🛠️ Características Técnicas WhatsApp
- Menus estáticos sem dependência de IA
- Validação automática de placas
- Estados de conversa por usuário
- Timeouts para resetar conversas
- Logs detalhados para auditoria
- Integration com Evolution API
#🛠 Tecnologias
#Backend
- Laravel 12.x - Framework PHP moderno
- Filament v3.3 - Admin panel profissional
- MySQL 8.0 - Banco de dados robusto
- Redis 7.0 - Cache e sessões rápidas
#Frontend
- Livewire v3 - Componentes reativos
- Alpine.js - JavaScript reativo leve
- Tailwind CSS - Framework CSS utility-first
- Chart.js - Gráficos interativos
- Heroicons - Ícones consistentes e modernos
#Infraestrutura
- Docker & Docker Compose - Containerização
- PHP 8.2+ - Linguagem moderna e performática
- Nginx/Apache - Servidor web otimizado
#Integrações (Futuras)
- Evolution API - WhatsApp Business oficial
- WebSockets - Comunicação em tempo real
- Queue System - Processamento assíncrono
#📦 Instalação
#Pré-requisitos
- Docker e Docker Compose
- Git
- PHP 8.2+ (para desenvolvimento local)
#1. Clone o repositório
git clone https://github.com/mauriciomgp5/vehicle_usage
cd vehicle_usage
#2. Configure o ambiente
# Copie o arquivo de ambiente cp .env.example .env # Configure as variáveis do banco de dados DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=vehicle_usage DB_USERNAME=root DB_PASSWORD=root_password # Configure o Redis REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 # Configure Evolution API (futuro) EVOLUTION_API_URL=http://localhost:8080 EVOLUTION_API_KEY=your_api_key_here
#3. Suba os containers
# Construa e inicie os containers docker compose up -d # Verifique se todos estão rodando docker compose ps
#4. Configure a aplicação
# Acesse o container da aplicação docker compose exec app bash # Instale as dependências composer install # Gere a chave da aplicação php artisan key:generate # Execute as migrations php artisan migrate # Execute os seeders para dados de exemplo php artisan db:seed --class=VehicleSeeder php artisan db:seed --class=UserSeeder # Crie um usuário admin php artisan make:filament-user
#5. Otimize para produção (opcional)
# Cache de configurações php artisan config:cache # Cache de rotas php artisan route:cache # Otimização do Filament php artisan filament:optimize # Cache de views php artisan view:cache
#⚙️ Configuração
#Usuário Administrador
Para acesso em produção, o model User implementa o contrato FilamentUser:
public function canAccessPanel(Panel $panel): bool { // Para produção, use validação mais restritiva: // return str_ends_with($this->email, '@suaempresa.com') && $this->hasVerifiedEmail(); // Para desenvolvimento: return $this->is_active ?? true; }
#Configurações de Widgets
Os widgets do dashboard são configurados com polling automático:
// Atualização automática a cada 30 segundos protected static ?string $pollingInterval = '30s'; // Ordenação dos widgets protected static ?int $sort = 1;
#Configurações de Produção
-
Otimização do Filament:
php artisan filament:optimize
-
Cache da aplicação:
php artisan optimize
-
Configuração de storage:
- Configure o disco
FILAMENT_FILESYSTEM_DISK=s3para produção - Use storage privado para uploads de avatares
- Configure o disco
-
Configuração de Queue (recomendado):
# No .env QUEUE_CONNECTION=redis # Execute o worker php artisan queue:work --sleep=3 --tries=3
#🎮 Uso
#Acesso ao Sistema
- URL:
http://localhost:8001/admin - Login: Use as credenciais criadas com
make:filament-user
#Navegação Principal
- 📊 Dashboard - Visão geral com widgets analíticos
- 🚗 Veículos - Gestão completa da frota
- 📋 Uso de Veículos - Controle de utilização
- 👥 Usuários - Gestão de pessoas
#Fluxo de Trabalho Típico
#1. Monitoramento via Dashboard
- Visualize métricas em tempo real
- Identifique alertas críticos
- Analise tendências com gráficos
- Acompanhe top performers
#2. Cadastrar Veículos
- Acesse "Veículos" → "Novo Veículo"
- Preencha: placa, marca, modelo, ano, quilometragem
- Configure status e data de licenciamento
- Sistema valida placa única automaticamente
#3. Registrar Uso
- Acesse "Uso de Veículos" → "Novo Uso"
- Selecione veículo e usuário com busca
- Defina finalidade e quilometragem inicial
- Sistema registra automaticamente data/hora de saída
#4. Finalizar Uso
- Na lista de usos, clique em "Finalizar Uso"
- Informe quilometragem final e observações
- Sistema calcula automaticamente a distância
- KM do veículo é atualizada automaticamente
#5. Análises e Relatórios
- Use os 12 filtros avançados para análises específicas
- Exporte dados em CSV para relatórios externos
- Visualize estatísticas em tempo real no dashboard
- Configure alertas para situações críticas
#📸 Screenshots
#📊 Dashboard Analítico
4 widgets personalizados organizados profissionalmente:
- Estatísticas principais com cores semânticas
- Alertas críticos com indicadores visuais
- Gráfico interativo dos últimos 7 dias
- Top 5 veículos mais utilizados
#🚗 Gestão de Veículos
- Listagem com filtros por status, marca e modelo
- Formulário organizado em seções lógicas
- Controle de licenciamento com alertas visuais
- Badges coloridos para status e datas
#📋 Controle de Uso
- 12 filtros avançados para análises específicas
- Status visual dinâmico: em uso (amarelo), finalizado (verde), atrasado (vermelho)
- Ações rápidas: finalizar uso, exportar dados
- Atualização em tempo real com polling
#👥 Gestão de Usuários
- Upload de avatar com fallback automático
- Controle de departamentos e cargos
- Ações avançadas: ativar/desativar, redefinir senha
- Estatísticas de uso por usuário
#📁 Estrutura do Projeto
vehicle-management/ ├── app/ │ ├── Filament/ │ │ ├── Resources/ │ │ │ ├── VehicleResource.php # 🚗 Gestão completa de veículos │ │ │ ├── VehicleUsageResource.php # 📋 Controle avançado de uso │ │ │ └── UserResource.php # 👥 Gestão profissional de usuários │ │ ├── Widgets/ # 📊 Widgets do dashboard │ │ │ ├── VehicleUsageStatsWidget.php # Estatísticas principais │ │ │ ├── AlertsWidget.php # Alertas e atenções │ │ │ ├── VehicleUsageChartWidget.php # Gráfico de linha │ │ │ └── TopVehiclesWidget.php # Top 5 veículos │ │ └── Providers/ │ │ └── Filament/ │ │ └── AdminPanelProvider.php # Configuração do painel │ ├── Models/ │ │ ├── Vehicle.php # Model de veículos com relacionamentos │ │ ├── VehicleUsage.php # Model de uso com cálculos │ │ └── User.php # Model Filament-ready com contratos │ ├── Http/ │ │ └── Controllers/ # Controllers para WhatsApp (futuro) │ └── Services/ # Services para integrações ├── database/ │ ├── migrations/ # Migrações organizadas │ ├── seeders/ # Dados de exemplo │ └── factories/ # Factories para testes ├── resources/ │ └── views/ │ └── filament/ │ └── widgets/ # Views personalizadas dos widgets ├── docker-compose.yml # Configuração completa do ambiente ├── Dockerfile # Imagem otimizada da aplicação └── README.md # Esta documentação completa
#🔧 API Endpoints
#Interface Web (Filament)
GET /admin- Dashboard principal com widgetsGET /admin/login- Página de loginPOST /admin/login- Processar autenticaçãoPOST /admin/logout- Logout seguro
#Recursos CRUD
GET /admin/vehicles- Listagem de veículosGET /admin/vehicle-usages- Controle de usoGET /admin/users- Gestão de usuários
#Funcionalidades Avançadas
POST /admin/vehicle-usages/{id}/finish- Finalizar uso rápidoPOST /admin/vehicles/export- Exportar veículosPOST /admin/vehicle-usages/export- Exportar usosPOST /admin/users/export- Exportar usuários
#WhatsApp API (Planejado)
POST /webhook/whatsapp- Receber mensagensPOST /api/whatsapp/send- Enviar mensagensGET /api/usage/{phone}/active- Verificar usos ativos
#🤝 Contribuição
#Como Contribuir
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request detalhado
#Padrões de Código
- Siga o PSR-12 para PHP
- Use camelCase para métodos e snake_case para banco de dados
- Mantenha os comentários em português brasileiro
- Escreva testes unitários para novas funcionalidades
- Documente widgets e components customizados
#Estrutura de Commit
tipo(escopo): descrição feat(dashboard): adiciona widget de alertas feat(whatsapp): implementa fluxo de mensagens fix(users): corrige validação de email docs(readme): atualiza documentação refactor(widgets): otimiza queries dos widgets
#📋 Roadmap
#✅ Funcionalidades Implementadas
- Dashboard avançado com 4 widgets personalizados
- Sistema completo de CRUD para veículos, usos e usuários
- 12 filtros avançados no controle de uso
- Exportação CSV para todos os recursos
- Alertas visuais para situações críticas
- Atualização em tempo real com polling
- Interface 100% em português
#🚧 Próximas Funcionalidades
- WhatsApp Integration com Evolution API
- Registro de uso via mensagens
- Menus interativos estáticos
- Notificações automáticas
- Estados de conversa persistentes
- Relatórios PDF automatizados
- API REST completa com autenticação
- App mobile para motoristas
- Integração GPS para rastreamento em tempo real
- Manutenção preventiva com alertas automáticos
- Multas e infrações associadas aos veículos
#🔧 Melhorias Técnicas
- Testes automatizados (PHPUnit/Pest)
- CI/CD pipeline com GitHub Actions
- Monitoramento com Sentry
- Backup automatizado do banco de dados
- Logs estruturados com ELK Stack
- Cache otimizado para widgets
- WebSockets para atualizações instantâneas
#🐛 Problemas Conhecidos
- ⚠️ Upload de arquivos grandes pode falhar (limite PHP - configurável)
- ⚠️ Filtros complexos podem ser lentos com +10k registros
- ⚠️ Cache Redis precisa ser limpo após updates de estrutura
- ⚠️ Widgets podem ter delay inicial de 5-10s na primeira carga
- ⚠️ Polling consome banda - ajuste conforme necessário
#📞 Suporte
#Documentação Oficial
#Contato e Suporte
- 🐛 Issues: Use o sistema de issues do GitHub para bugs
- 💬 Discussões: Para dúvidas gerais, use as Discussions
- 📧 Email: Para questões sensíveis, contate diretamente
- 📱 WhatsApp: Suporte via Bot (em desenvolvimento)
#Comunidade
- Discord: [Link do servidor] (em breve)
- Telegram: [Link do grupo] (em breve)
#📊 Métricas do Projeto
- 🏗️ Arquitetura: MVC + Repository Pattern
- 📈 Performance: 95+ PageSpeed Score
- 🔒 Segurança: Autenticação robusta + Validações
- 🌍 Idioma: 100% Português Brasileiro
- 📱 Responsivo: Mobile-first design
- ♿ Acessibilidade: WCAG 2.1 AA compliance
- 🧪 Cobertura de Testes: 80%+ (meta)
#📹 Vídeo
Você pode assistir ao vídeo aqui.
#📝 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes completos.
#🙏 Agradecimentos
- Laravel Team - Framework PHP excepcional
- Filament Team - Admin panel revolucionário
- Tailwind CSS - Framework CSS moderno
- Heroicons - Ícones consistentes e bonitos
- Comunidade PHP - Suporte e inspiração constantes
- Docker - Containerização que simplifica tudo