Appearance
Tecnologias e Pacotes Utilizados
O Cidade Gov é desenvolvido utilizando uma stack moderna e robusta, focada em produtividade, segurança e escalabilidade. Abaixo, detalhamos as tecnologias principais e os pacotes utilizados no backend e frontend.
Backend (PHP/Laravel)
Linguagem e Framework
- PHP 8.4: Versão mais recente do PHP, com melhorias de performance e novos recursos.
- Laravel 12: Framework PHP moderno para desenvolvimento web, com arquitetura MVC, ORM Eloquent e ferramentas poderosas para desenvolvimento rápido.
Multi-tenancy
- stancl/tenancy: Pacote para implementação de multi-tenancy com bancos de dados separados por tenant. Fornece isolamento completo de dados e gerenciamento automático de contextos.
Autenticação e Autorização
- Laravel Fortify: Backend headless para autenticação, suportando login/logout, registro, reset de senha e verificação de email.
- spatie/laravel-permission: Gerenciamento avançado de roles e permissions, permitindo controle granular de acessos por tenant.
Banco de Dados e Persistência
- MariaDB: Sistema de gerenciamento de banco de dados relacional, escolhido por sua performance e compatibilidade com MySQL.
- Laravel Auditing (owen-it/laravel-auditing): Auditoria automática de mudanças em modelos, essencial para compliance e rastreabilidade em sistemas de saúde.
Comunicação em Tempo Real
- Laravel Reverb: Servidor WebSocket nativo do Laravel para comunicação em tempo real, usado para notificações e atualizações live.
Filas e Processamento Assíncrono
- Laravel Queues: Sistema de filas integrado para processamento de tarefas demoradas, como sincronizações com sistemas externos (RNDS, BNAFAR).
Outros Pacotes Essenciais
- Laravel Sanctum: Autenticação API para SPAs e mobile apps.
- Laravel Socialite: Integração com provedores OAuth (Google, Facebook, etc.).
- Laravel Telescope: Debugging e monitoramento de aplicações em produção.
- Laravel Pail: Ferramenta de linha de comando para visualização de logs.
Frontend (Vue.js/PrimeVue)
Framework JavaScript
- Vue 3: Framework progressivo para construção de interfaces de usuário, com Composition API e melhor performance.
- Inertia.js v2: Biblioteca para criação de SPAs modernas sem API separada, integrando Vue com Laravel de forma seamless.
Componentes UI
- PrimeVue (Unstyled Mode): Biblioteca de componentes UI acessíveis e customizáveis, configurada em modo "unstyled" para máxima flexibilidade com Tailwind CSS.
Estilização
- Tailwind CSS v4: Framework CSS utility-first para design responsivo e consistente.
- @inertiajs/vue3: Integração oficial do Inertia.js com Vue 3.
Ferramentas de Desenvolvimento
- Vite: Build tool moderno e rápido para desenvolvimento frontend.
- ESLint: Linting de código JavaScript/TypeScript.
- Prettier: Formatação automática de código.
Integrações Externas
Sistemas de Saúde
- RNDS (Rede Nacional de Dados em Saúde): Integração para compartilhamento de dados de saúde.
- BNAFAR (Banco Nacional de Farmácias): Controle de estoques e dispensação de medicamentos.
- CNES (Cadastro Nacional de Estabelecimentos de Saúde): Base de dados de unidades de saúde.
- SIGTAP: Tabela unificada de procedimentos e medicamentos do SUS.
- CNS (Cartão Nacional de Saúde): Identificação única de cidadãos no sistema de saúde.
Autenticação Externa
- LDAP/Active Directory: Autenticação integrada com servidores corporativos.
- Keycloak: Servidor de identidade para autenticação federada.
Comunicação
- WhatsApp Business API: Integração para atendimento cidadão via chatbots e notificações.
Futuro: Aplicativo Mobile
- NativePHP: Framework para desenvolvimento de aplicações desktop e mobile nativas usando PHP e Laravel. Será utilizado para criar um app mobile complementar ao sistema web.
Infraestrutura e DevOps
Servidor
- Nginx/Apache: Servidores web para hospedagem.
- Redis: Cache e armazenamento de sessões.
- Supervisor: Gerenciamento de processos para filas Laravel.
Desenvolvimento
- Composer: Gerenciador de dependências PHP.
- NPM/Yarn: Gerenciadores de pacotes JavaScript.
- Docker: Containerização para ambientes de desenvolvimento consistentes.
- Git: Controle de versão.
Qualidade de Código
- Laravel Pint: Formatação automática de código PHP.
- Larastan (PHPStan): Análise estática de código PHP.
- Pest: Framework de testes para PHP, integrado ao Laravel.
Essa stack tecnológica permite ao Cidade Gov oferecer uma experiência robusta, segura e moderna para gestão municipal de saúde, com foco em produtividade do desenvolvedor e satisfação do usuário final.
