JamesProduto · Funcionalidades · Desenvolvimento
Repositório

architecture · observed

Stack e tecnologias

Linguagens, frameworks, bibliotecas e padrões que sustentam o James.

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, a privacidade e a consistência visual.

Back-end e Infraestrutura

  • Linguagem / Framework: PHP 8.5 com Laravel 13.
  • Autenticação Headless: Laravel Fortify gerencia todo o core de autenticação permitindo focar apenas nas views personalizadas.
  • Banco de Dados: PostgreSQL 15+ (com extensões unaccent e pg_trgm).
  • Infraestrutura Local: Docker gerenciado via Laravel Sail.
  • Ferramentas de Desenvolvimento e Qualidade:
  • - Pest PHP v4 (Testes Unitários, Feature e Arquiteturais) - Laravel Pint (Padronização e formatação automática de código)

Front-end e UI

  • Páginas e Estrutura: Blade Components altamente modularizados (registrados anonimamente via Blade::anonymousComponentPath, sem aliases como ui. ou form.).
  • Estilização: TailwindCSS (v4) utilizando classes utilitárias semânticas e cores padronizadas da escala.
  • Interatividade Leve: Alpine.js (v3) gerencia a reatividade no cliente (modais, tooltips, dropdowns, validações e manipulação interativa de listas).
  • Visualização Gráfica: Apache ECharts integrado via Vanilla JavaScript para renderizar visualizações complexas (Diagrama de Sankey de fluxo de caixa, evolução cumulativa de saldo e donuts por categoria).
  • Ícones: Ecossistema Blade Icons com suporte nativo a:
  • - Heroicons (<x-heroicon-o-...>) como padrão do sistema - Tabler Icons (<x-tabler-...>) e Phosphor Icons (<x-phosphor-...>) para seleção dinâmica de tags financeiras.

Ferramentas e Bibliotecas Integradas

  • Auditoria e Logs de Mutações:
  • - Spatie Laravel Activitylog (v5+): Rastreamento automático e vitalício de alterações em todas as Models de negócio (created, updated, deleted, restored, forceDeleted).

  • Sistema de Notificações Multi-canal:
  • - Telegram Notification Channel: Integração com a API de bots do Telegram para push notifications de alertas, faturas e relatórios.

  • Gestão de Imagens e Arquivos:
  • - Spatie Media Library: Trata todo o armazenamento polimórfico de avatares e comprovantes no disco privado (private), garantindo 100% de sigilo. - Cropper.js: Integrado via componente Blade (form-image-cropper) e Alpine.js para recorte visual de imagens antes do upload.

  • Editor Rico (Rich Text):
  • - EasyMDE: Editor visual para anotações e descrições, persistindo os dados como Markdown puro no banco.

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 por padrão às entidades principais do sistema.
  • Dados Dinâmicos em JSONB: Utilização do tipo JSONB nativo do PostgreSQL para armazenar listas flexíveis (telefones, e-mails, chaves Pix) sem poluir o banco com tabelas auxiliares desnecessárias.