Stack e arquitetura do aplicativo desktop para estúdios de tatuagem.
O Ink Agenda é desenvolvido em Java 25 (LTS) com interface em JavaFX 21.0.11. Moeda, datas e meses usam o locale fixo pt-BR (R$ 350,00 · 07/10/2026 · outubro de 2026) na tela, no gráfico e no PDF.
Persistência em SQLite (%LOCALAPPDATA%\CaraCore\AgendaInk\agenda.db) com WAL, verificação de integridade na abertura e migrações versionadas com Flyway. O app não abre porta nem faz conexão: funciona 100% offline.
Result.Acesso por celular + senha local, sem conta na nuvem. A senha não fica no SQLite: fica em um arquivo com hash PBKDF2-HMAC-SHA256 e sal aleatório. A frase de recuperação e os códigos de emergência também são guardados só como hash. “Esqueci minha senha” gera um código de 6 dígitos válido por 15 minutos.
“Lembrar senha” guarda a credencial criptografada (AES-GCM) com uma chave derivada de um segredo aleatório criado em cada instalação. O app não traz usuário de fábrica: na primeira abertura vai direto ao primeiro acesso.
.inkbak da v2.0.0 continuam restaurando.agenda_*.db.gz em backups\, mantendo os 30 mais recentes. Pode ser desligado em Config.Registro técnico em %LOCALAPPDATA%\CaraCore\AgendaInk\logs\ (agenda-0.log a agenda-4.log, até 1 MB cada, com rotação). Senhas, telefones e e-mails são mascarados antes de gravar.
Maven para build e dependências. JUnit 5 e TestFX para testes; JaCoCo exige no mínimo 80% de cobertura de linhas nos serviços e no domínio, com metas próprias para persistência e log. O pacote de produção passa por um teste que barra dados de demonstração, credenciais e scripts de desenvolvimento.
ZIP portátil e instalador .exe para Windows gerados com jpackage. O runtime Java 25 vem embutido (jlink, com os dados de locale e sem ferramentas de desenvolvimento como depurador, jshell e compilador): não é preciso instalar JDK. O jar da aplicação é ofuscado com ProGuard antes do empacotamento.
Ecossistema Cara Core Informática — Produtos desktop e web com foco em simplicidade, manutenção e entrega clara. Ink Agenda integra o portfólio ao lado do PDV, Seed, Hub e outros.
Status e próximos passos