Stack e Tecnologias
Stack e Tecnologias
O James é construído sobre uma fundação moderna, robusta e focada em simplicidade operacional. A escolha de cada ferramenta foi pensada para maximizar a produtividade e a consistência visual.
Back-end e Infraestrutura
- Linguagem / Framework: PHP com Laravel.
- Autenticação Headless: Laravel Fortify gerencia todo o core de autenticação permitindo focar apenas nas views personalizadas.
- Banco de Dados: PostgreSQL.
- Infraestrutura Local: Docker gerenciado via Laravel Sail.
- Ferramentas de Desenvolvimento:
- Pest PHP (Testes Unitários e de Feature)
- Laravel Pint (Padronização e formatação de código)
- Laravel Pail (Visualização moderna de logs)
Front-end e UI
- Páginas e Estrutura: Blade Components altamente modularizados (namespaces lógicos como
ui,form,layout). - Estilização: TailwindCSS (v4) focado em classes utilitárias para construir interfaces limpas e responsivas.
- Interatividade Leve: Alpine.js (v3) gerencia a reatividade no cliente (modais, tooltips, dropdowns, validações e manipulação interativa).
- Ícones: Heroicons integrados nativamente via componentes Blade (
<x-icons.*>). Eles são sincronizados e atualizados localmente através de um script Python (scripts/sync-heroicons.py).
Ferramentas e Bibliotecas Integradas
- Gestão de Imagens e Arquivos:
- Spatie Media Library: Trata todo o armazenamento e associação polimórfica de arquivos anexos. Opera estritamente no disco
localpara garantir 100% de privacidade. - Cropper.js: Integrado através de um componente customizado (
form-image-cropper) e Alpine.js para recorte (crop) visual de imagens (como avatares) antes do upload.
- Spatie Media Library: Trata todo o armazenamento e associação polimórfica de arquivos anexos. Opera estritamente no disco
- Editor Rico (Rich Text):
- EasyMDE: Usado para edição de textos ricos como notas e descrições (através do componente
form-markdown-editor). Os dados são salvos como Markdown puro no banco, garantindo extrema segurança contra injeções de HTML e facilidade de exportação.
- EasyMDE: Usado para edição de textos ricos como notas e descrições (através do componente
Padrões Arquiteturais e Banco de Dados
- PostgreSQL Extensions:
unaccent: Habilitado para buscas textuais precisas ignorando acentuação.pg_trgm: Utilizado para indexação otimizada e buscas por similaridade/relevância.
- Soft Deletes: Deleção lógica aplicada às entidades principais da aplicação, fornecendo uma “lixeira” para evitar perdas catastróficas de dados.
- Dados Dinâmicos em JSONB: Utilização agressiva do tipo
JSONBnativo do PostgreSQL para armazenar múltiplas propriedades simples (como listas de telefones e e-mails) sem precisar poluir o banco com dezenas de tabelas de relacionamento. O componenteform-key-value-repeaterfacilita toda a gestão visual desse JSON.
Última modificação