✅ Técnicos podem criar e gerenciar ordens de serviço
✅ Clientes podem acompanhar suas ordens
✅ Notificações automáticas por e-mail quando serviços são concluídos
✅ Interface amigável e responsiva
✅ Sistema de filas para processamento eficiente de e-mails
✅ Dashboard analítico com gráficos e estatísticas em tempo real
- PHP 8.1 ou superior
- Composer
- MySQL ou SQLite
- Node.js e npm (para compilação de assets e Chart.js)
- Extensões básicas do PHP (PDO, Mbstring, etc)
-
Clone o repositório e instale as dependências
git clone https://github.com/lucasmarquesfaria/teste-tecnico cd teste-tecnico composer install -
Configure o ambiente
# Crie o arquivo .env copy .env.example .env # Gere a chave da aplicação php artisan key:generate
-
Configure o banco de dados no arquivo .env
# Para MySQL DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=sistema_os DB_USERNAME=root DB_PASSWORD=sua_senha # OU para SQLite (mais simples para testes) DB_CONNECTION=sqlite # Crie o arquivo database/database.sqlite -
Execute as migrações e seeders
php artisan migrate php artisan db:seed
-
Instale as dependências do Node.js e compile os assets
npm install npm run dev
-
Inicie o servidor
php artisan serve
-
Inicie o processador de filas (para envio de e-mails)
php artisan queue:work
-
Acesse o sistema: http://localhost:8000
👨💼 Técnico
- Email: tecnico@exemplo.com
- Senha: password
👩💻 Cliente
- Email: cliente@exemplo.com
- Senha: password
- Faça login como técnico
- Crie uma nova ordem de serviço para um cliente
- Atualize o status da OS para "concluída" quando o serviço estiver pronto
- O sistema enviará automaticamente um e-mail para o cliente informando sobre a conclusão
- (Apenas técnicos) Acesse o Dashboard Analítico para visualizar estatísticas e gráficos sobre as ordens de serviço
# Windows
.\run-tests.bat
# Linux/macOS
php artisan testO sistema utiliza:
- Eventos e listeners do Laravel para disparar notificações
- Sistema de filas para processamento assíncrono de e-mails
- Cache para evitar envio duplicado de notificações
- Políticas de acesso para controlar permissões
- Controllers: Gerenciam requisições e respostas
- Models: Representam as entidades do sistema (Usuários, Ordens de serviço)
- Events & Listeners: Cuidam da notificação quando uma OS é concluída
- Policies: Controlam quem pode fazer o quê no sistema
O Dashboard Analítico fornece uma visão geral do desempenho do sistema de ordens de serviço através de gráficos e estatísticas. Acesso exclusivo para a área técnica (usuários com função de técnico).
- 📈 Distribuição de status das ordens de serviço (gráfico de pizza)
- 📊 Ordens de serviço criadas por mês (gráfico de barras)
- ⏱️ Tempo médio de conclusão das ordens
- 📝 Estatísticas gerais (total de ordens, taxa de conclusão, etc.)
- 👨🔧 Análise de desempenho específica para técnicos (últimas 8 semanas)
- Faça login no sistema com conta de técnico
- No dashboard principal, clique no card "Dashboard Analítico"
- Ou acesse diretamente pela URL: http://localhost:8000/analytics
O sistema utiliza a biblioteca Chart.js para renderização dos gráficos. Para garantir o funcionamento correto:
-
Certifique-se de que o Chart.js foi instalado:
npm install chart.js
-
Execute o compilador de assets para processar os arquivos JS:
npm run dev # Para ambiente de desenvolvimento # ou npm run prod # Para ambiente de produção
Os gráficos são configuráveis através da edição do arquivo resources/views/analytics/index.blade.php. Você pode modificar cores, tipos de gráficos e outras opções de exibição conforme necessário.