Aplicação Interna Inovadora para a Mudimat: Aumentando a Produtividade com Tecnologia Escalável
Em 2019, fizemos uma parceria com a Mudimat para criar uma aplicação interna de ponta, adaptada para otimizar as operações de recursos humanos e financeiras da empresa. Desenvolvida utilizando Laravel 5.8 (posteriormente atualizada para Laravel 6 para suporte a longo prazo) e Vue.js, a plataforma foi alojada na infraestrutura de nuvem da DigitalOcean, aproveitando tecnologias escaláveis e de alto desempenho para atender aos requisitos operacionais complexos.
Além das funcionalidades principais de recursos humanos e finanças, a aplicação integrou-se com sistemas externos de rastreamento para registar localizações e horários de trabalho dos funcionários, oferecendo uma solução centralizada para a gestão em tempo real da força de trabalho.
Objetivos do Projeto
- Aumento da Produtividade: Automatizar tarefas repetitivas e melhorar a precisão dos dados nos fluxos de trabalho de recursos humanos e finanças.
- Suporte Escalável para Múltiplas Empresas: Permitir operações para duas empresas com mais de 200 funcionários.
- Rastreamento em Tempo Real da Força de Trabalho: Integrar com ferramentas de rastreamento de terceiros para monitorizar localizações e horários de trabalho dos funcionários em diferentes locais de trabalho.
- Relatórios Simplificados: Fornecer informações acionáveis através de funcionalidades avançadas de relatórios e análises.
Características Principais
1. Suporte a Múltiplas Empresas
- Arquitetura baseada em inquilinos utilizando as conexões multi-banco de dados do Laravel, garantindo uma gestão segura e escalável de dados para várias empresas.
- Gestão centralizada de utilizadores e funções, permitindo a mudança entre os contextos das empresas sem dificuldades.
2. Automação de Processos
- Automatizou cálculos de salários, aprovações de férias e atualizações de registos de funcionários, reduzindo a carga de trabalho manual.
- Utilizou Laravel Queues para tratar tarefas assíncronas como a geração de resumos de salários e envio de notificações.
3. Integração de Rastreamento da Força de Trabalho
- Integração com sistemas de rastreamento GPS de terceiros para monitorizar as localizações dos funcionários em tempo real.
- Registou as horas de trabalho e localizações diretamente no sistema para utilização nos relatórios de salários e conformidade.
- Desenvolveu APIs para dispositivos de rastreamento para sincronizar dados de localização de forma segura e eficiente.
4. Controlo de Acesso Avançado Baseado em Funções (RBAC)
- Implementou RBAC utilizando as Gates e Policies do Laravel para fornecer controlo de acesso detalhado com base em funções (ex.: gestores de RH, administradores de finanças, supervisores).
- Garantiu que dados sensíveis, como localizações de funcionários e detalhes de salários, fossem acessíveis apenas por utilizadores autorizados.
5. Relatórios e Análises
- Desenvolveu painéis dinâmicos com Vue.js e Chart.js, permitindo a visualização em tempo real de métricas chave como presença, despesas com salários e produtividade baseada em localizações.
- Gerou relatórios detalhados e exportáveis utilizando Maatwebsite Laravel Excel e SnappyPDF.
6. Interface Responsiva para Dispositivos Móveis
- Entregou uma interface mobile-first otimizada para gestores de campo acederem a dados de rastreamento e detalhes dos funcionários em qualquer lugar.
- Utilizou Vue Router e Vuex para criar uma experiência de aplicação de página única fluída em todos os dispositivos.
7. Notificações e Alertas
- Integração das Laravel Notifications para atualizações em tempo real através de alertas dentro da aplicação, e-mail e SMS para eventos importantes como horas de trabalho não cumpridas ou prazos de salários.
8. Segurança de Dados e Conformidade
- Implementou encriptação em repouso e em trânsito para dados sensíveis como registos de localizações e dados financeiros utilizando AES-256.
- Garantiu conformidade com o GDPR e outras normas regionais de proteção de dados.
Arquitetura Técnica
- Back-End: Laravel 5.8/6 (PHP)
- PHP 7.4: Utilizado pela sua estabilidade e desempenho.
- Arquitetura Orientada a Serviços (SOA): Serviços modularizados para operações de RH, finanças e integração de rastreamento, garantindo flexibilidade e manutenção.
- Eloquent ORM: Simplificou a modelagem de dados e possibilitou relações complexas entre entidades como funcionários, folhas de ponto e localizações.
- Scheduler e Queues: Utilizados para automatizar tarefas repetitivas como a sincronização de dados de rastreamento e geração de salários.
- Desenvolvimento de APIs: Desenvolvimento de APIs RESTful seguras para integração com dispositivos de rastreamento e ferramentas externas.
- Front-End: Vue.js
- Vue CLI: Estruturou a aplicação com componentes reutilizáveis e design modular.
- Vuex: Gestão centralizada de estado para tratamento consistente de dados em toda a aplicação.
- TailwindCSS: Usado para desenvolvimento de UI rápida, moderna e responsiva.
- Design Offline-First: Implementação de Service Workers para funcionalidade limitada offline, garantindo usabilidade mesmo em ambientes de baixa conectividade.
- Infraestrutura: DigitalOcean
- Desdobramento Dockerizado: Garantiu portabilidade e escalabilidade ao implantar a aplicação em contêineres Docker.
- Balanceamento de Carga: Configuração do balanceador de carga da DigitalOcean para gerir picos de tráfego de forma eficiente.
- Serviço de Base de Dados Gerido: Utilizou o MySQL Managed Database da DigitalOcean para backups automáticos e alta disponibilidade.
- Pipelines CI/CD: Integração do GitLab CI/CD para deploy contínuo, garantindo lançamentos mais rápidos e confiáveis.
Melhores Práticas e Padrões
- Desenvolvimento Orientado a Testes (TDD): Utilizou PHPUnit para testes de back-end e Cypress para testes end-to-end de front-end.
- Qualidade de Código: Aplicação dos padrões de codificação PSR-12 com ferramentas de análise estática como PHPStan e PHP-CS-Fixer.
- Segurança em Primeiro Lugar: Proteção CSRF e XSS em todos os formulários. Sanitização de entradas da API para prevenir injeção SQL e outras vulnerabilidades.
- Documentação: Forneceu documentação abrangente para desenvolvedores sobre APIs e fluxos de trabalho do sistema, facilitando a transferência de conhecimento e manutenção futura.
Resultados e Impacto
- Usabilidade Aprimorada: Entregou uma interface altamente responsiva e fácil de usar, que melhorou a adoção e satisfação das equipas de RH e finanças.
- Aumento de 120% na Produtividade: A automação de processos repetitivos e centralização de fluxos de trabalho eliminou gargalos.
- Gestão de Funcionários Melhorada: O rastreamento em tempo real forneceu informações acionáveis para as operações de campo, garantindo salários e conformidade precisos.
- Design Escalável: Suportou as operações simultâneas de duas empresas com mais de 200 funcionários, com espaço para expansão.