Zum Inhalt springen
← Zurück zu den Projekten

Vehicle Usage

#🚗 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.

Laravel Filament PHP MySQL Redis Docker WhatsApp

#📋 Índice

#✨ 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

  1. Múltipla seleção de veículos e usuários
  2. Status do veículo (ativo, inativo, manutenção)
  3. Status do uso (em uso, finalizado, atrasado >24h)
  4. Período de saída com seletores de data
  5. Distância percorrida com valores min/max
  6. Períodos rápidos (hoje, ontem, semana, mês, ano)
  7. Busca textual na finalidade
  8. Uso prolongado (identificação automática >8h)
  9. Registros sem KM para controle de auditoria
  10. Uso em fim de semana para políticas especiais
  11. Layout colapsível para otimização de espaço
  12. 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

  1. Otimização do Filament:

    php artisan filament:optimize
    
  2. Cache da aplicação:

    php artisan optimize
    
  3. Configuração de storage:

    • Configure o disco FILAMENT_FILESYSTEM_DISK=s3 para produção
    • Use storage privado para uploads de avatares
  4. 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

  1. 📊 Dashboard - Visão geral com widgets analíticos
  2. 🚗 Veículos - Gestão completa da frota
  3. 📋 Uso de Veículos - Controle de utilização
  4. 👥 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 widgets
  • GET /admin/login - Página de login
  • POST /admin/login - Processar autenticação
  • POST /admin/logout - Logout seguro

#Recursos CRUD

  • GET /admin/vehicles - Listagem de veículos
  • GET /admin/vehicle-usages - Controle de uso
  • GET /admin/users - Gestão de usuários

#Funcionalidades Avançadas

  • POST /admin/vehicle-usages/{id}/finish - Finalizar uso rápido
  • POST /admin/vehicles/export - Exportar veículos
  • POST /admin/vehicle-usages/export - Exportar usos
  • POST /admin/users/export - Exportar usuários

#WhatsApp API (Planejado)

  • POST /webhook/whatsapp - Receber mensagens
  • POST /api/whatsapp/send - Enviar mensagens
  • GET /api/usage/{phone}/active - Verificar usos ativos

#🤝 Contribuição

#Como Contribuir

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. 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

#🚀 Desenvolvido com ❤️ usando Laravel 12 & Filament v3

#🌟 Sistema Completo de Gestão de Veículos com Dashboard Analítico Avançado

Gostou do projeto? Dê uma estrela no GitHub!

GitHub stars GitHub forks GitHub watchers

Neue Version verfügbar.