CaraCore PDV

Sistema de Ponto de Venda — foco localhost e Windows Desktop

Privado Licença Proprietária Em Desenvolvimento Java 21 Quarkus 3 SQLite Bootstrap 5 HTMX ApexCharts Docker Windows Desktop
Repositório Privado

Este projeto possui código-fonte privado e é protegido por licença proprietária da Cara Core Informática. A documentação aqui tem caráter informativo sobre funcionalidades e arquitetura. Loja online: canal institucional de releases · Portal da loja: pdv.caracore.com.br.

Transparência de posicionamento - Versão 3 (V3)

Direção do produto

CaraCore PDV para pequenos e médios negócios

Na V3, o CaraCore PDV mantém foco em operação simples, continuidade de venda e previsibilidade para empresas de pequeno e médio porte.

Direção estratégica: foco prático no cenário de PIX Split 2027, reduzindo a complexidade operacional da rotina fiscal e financeira no dia a dia do caixa.

Compromisso de transparência: mostramos com clareza o que já está pronto, o que está em evolução e quais resultados o cliente pode esperar em cada etapa.

Persona de negócio

Gestor(a) de loja PME em crescimento

Perfil: dono(a) ou gerente de operação com equipe enxuta, margem pressionada e necessidade de padronizar processos de caixa.

Dores principais: retrabalho em fechamento, risco de erro fiscal, dificuldade de conciliação e baixa previsibilidade no dia a dia.

Objetivo: manter vendas fluindo com segurança, simplicidade e controle, mesmo em cenário de mudança regulatória.

Valor esperado do produto: reduzir esforço manual, organizar a rotina do caixa e apoiar a transição para PIX Split 2027 com linguagem de negócio e execução clara.

Visão Geral

O que é o PDV?

O PDV (Ponto de Venda) é o sistema de caixa usado no balcão da loja: registrar produtos, aplicar descontos, receber pagamentos e emitir comprovantes. Escopo: foco localhost e Windows Desktop — pacote Windows para uso local; ao abrir, o backend sobe em localhost:8765. O CaraCore PDV é preparado para a Reforma Tributária 2026–2033 (CBS e IBS), com modo contingência (SQLite local + SMS) quando a internet cai e trilha Premium para integração PIX. Banco: apenas SQLite (./data/caracore-pdv.db), carga inicial automática (admin/admin) na primeira execução e Centro de Segurança e Backup.

Em resumo:

  • 🛒 Caixa completo: Vendas, clientes, estoque, relatórios
  • 📋 Fiscal: Motor preparado para CBS/IBS 2026–2033
  • 💳 PIX: trilha de integração e automação no plano Premium
  • 📶 Offline / contingência: Funciona sem internet
  • 🖥️ Foco localhost e Windows Desktop: EXE para Windows; sobe em localhost:8765 ao abrir; banco apenas SQLite; docker-compose.sqlite.yml para um container
  • 🔐 Centro de Segurança e Backup: Políticas, criptografia e gestão de backup/restore
  • 📋 Planos Free e Premium: Free — 100 vendas, até 100 produtos e 1 operador; Premium — integração PIX, expansão operacional, configuração de e-mail, trilha de relatório ao contador conforme release e suporte prioritário. Liberação Premium somente após confirmação de pagamento e registro LGPD.

Arquitetura Técnica

Aplicação desktop/local em Java 21, JavaFX 21 e Quarkus 3, com API REST local e persistência SQLite. Escopo: foco localhost e Windows Desktop; banco apenas SQLite. Módulos: PDV (caixa), vendas, produtos, clientes, estoque, dashboard, relatórios nativos do PDV, operadores e multi-loja. Perfil sqlite (padrão): banco em ./data/caracore-pdv.db; backend local em http://localhost:8765. A oferta pública atual está na release v3.1.1-free e prioriza o desktop local nativo para resposta rápida no balcão e menor dependência de infraestrutura externa.

Componentes principais:

  • Quarkus / REST / Panache: APIs locais, serviços e repositórios
  • JavaFX: cliente desktop nativo da oferta atual
  • SQLite (banco único): Perfil sqlite padrão; modo contingência usa SQLite local
  • Segurança local: Perfis Administrador, Operador, Visitante
  • Relatórios nativos: Geração de PDF e exportações operacionais
  • Centro de Segurança e Backup: Políticas, criptografia de dados sensíveis, gestão de backup/restore (incl. auto-backup ao encerrar, cloud AES-256, USB via ADB no modo contingência)
  • App pdv-sms-enviar (Android): Envio de SMS na contingência; recepção de licença Premium por SMS (CC-LICENSE/CARACORE-KEY); ContentProvider para o PDV (hardware_id, licença); tela de status e Verificar Conexão USB.
  • Planos Free e Premium: PlanoLicencaService, configuracao_plano. Free: 100 vendas, até 100 produtos e 1 operador. Premium: integração PIX, configuração de e-mail e contador, trilha de relatório ao contador conforme release, suporte prioritário e demais automações liberadas comercialmente. Liberação Premium somente após confirmação de pagamento e registro LGPD.

Funcionalidades Principais

Motor Fiscal (CBS/IBS 2026–2033)

Para leigos: Cálculo de impostos conforme a Reforma Tributária; o sistema já considera as regras que entram em vigor nos próximos anos.

Técnico: Motor fiscal preparado para CBS e IBS, evolução gradual até 2033.

PIX e PIX Split

Para leigos: Pagamento por PIX com QR Code na tela; suporte a divisão de pagamento (Split) entre loja e intermediários.

Técnico: Geração de QR Code, webhook de confirmação, estrutura para Mercado Pago e PagSeguro.

Dashboard (ApexCharts)

Para leigos: Painel com vendas da semana, produtos mais vendidos, totais do dia e vendas recentes.

Técnico: API /dashboard/api/dados, gráficos ApexCharts, atualização via fetch.

Offline-First e Contingência

Para leigos: Se a internet cair, as vendas continuam em banco local e são enviadas quando voltar; em contingência, usa SQLite e avisa por SMS. O app Android no celular ainda recebe a ativação da Licença Premium por SMS e mostra se está ativa (verde) ou inativa (vermelho).

Técnico: Modo contingência: SQLite local + ADB/SMS. App pdv-sms-enviar (android-sms-enviar): envio de SMS via ADB; recepção de licença Premium por SMS (CC-LICENSE/CARACORE-KEY, filtro por número oficial); LicencaContentProvider (content://br.com.caracore.pdv.sms.licenca/licenca) com hardware_id, chave, valida, mes_ano para o PDV consultar via ADB; tela com status (Licença Gratuita/Inativa ou Licença Premium Ativa) e botão Verificar Conexão USB. A documentação pública da loja permanece concentrada nas páginas HTML desta wiki.

Leitor de Código de Barras e Hotkeys

Para leigos: Leitura por leitor (F4) ou câmera (QuaggaJS); atalhos de teclado para agilizar o caixa.

Técnico: QuaggaJS, hotkeys configuráveis, integração com HTMX.

Relatórios PDF e Multi-Loja

Para leigos: Relatórios de vendas, estoque e performance em PDF; suporte a várias lojas com estoque por unidade.

Técnico: Pipeline nativo de relatórios; multi-loja com estoque independente; tratamento de erros e logging.

SQLite para Pequenos e Médios

Para leigos: O PDV usa apenas SQLite como banco — um único arquivo, sem servidor de banco separado. Ideal para um caixa, lojas e pequenas redes. Na primeira execução já cria o banco e carrega usuário admin/admin.

Técnico: Perfil sqlite (padrão), carga inicial automática e rotinas locais de persistência para manter a operação simples no balcão e previsível em Windows.

Centro de Segurança e Backup

Para leigos: Painel para definir políticas de segurança, criptografia de dados sensíveis e agendar backups. No modo contingência: backup automático ao fechar o sistema, envio para nuvem (criptografado) e cópia em USB via celular conectado.

Técnico: SqliteBackupService (checkpoint WAL, ./backups, retenção 7 dias; USB .gz via ADB); SqliteBackupCloudSyncService (JSON vendas do dia, AES-256-GCM, POST para servidor central). A visão pública deste tema permanece concentrada nas páginas HTML da loja e na trilha institucional do produto.

Planos Free e Premium

Para leigos: Free: até 100 vendas/mês e 10 SMS de recibo/mês; ideal para começar. Premium: recuperação de senha por SMS no celular do operador; configuração de e-mail com dados do contador e trilha de relatório ao contador conforme release; suporte prioritário com acesso remoto (RustDesk/AnyDesk) e botão Ajuda no menu. Liberação Premium somente após confirmação de pagamento e registro LGPD.

Técnico: PlanoLicencaService, tabela configuracao_plano. Free: limitação em PagamentoService (LimiteVendasAtingidoException) e SmsService (recibo). Premium: RecuperacaoSenhaService + AdbSmsProvider; ConfiguracaoEmail (contadorNome, contadorEmail); RelatorioContadorService e AutomacaoEmailContadorService habilitados por release na trilha Premium; SuporteController (/suporte, suporte.rustdesk.id, suporte.anydesk.id). Validação online da licença Premium a cada 15 dias; se >15 dias sem internet, automações (e-mail, nuvem) ficam suspensas.

Stack Tecnológica

Backend

  • Java 21: Linguagem principal
  • Quarkus 3: Backend local, APIs REST e injeção de dependências
  • Hibernate Panache: ORM e repositórios
  • SQLite 3.51: Banco padrão (perfil sqlite); ./data/caracore-pdv.db; carga automática na 1ª execução
  • SQLite (contingência): Modo contingência (SMS, ADB) — também SQLite local
  • Relatórios nativos do PDV: Relatórios PDF e saídas operacionais

Cliente e interface

  • JavaFX 21: Cliente desktop nativo da oferta atual
  • Bootstrap 5.3.2: Layout responsivo
  • Thymeleaf 3.x: Templates e fragments
  • HTMX 1.9: Atualizações dinâmicas sem recarregar
  • ApexCharts 3.44: Gráficos do dashboard
  • jQuery 3.x: DOM e plugins
  • QuaggaJS: Leitura de código de barras
  • Font Awesome 6.4: Ícones

Segurança e Testes

  • Segurança local: Autenticação e perfis (Admin, Operador, Visitante)
  • JUnit 5 + Mockito 5.11: Testes unitários
  • JaCoCo 0.8.10: Cobertura de código
  • TestFX, Selenium 4.18 + Pytest: Testes de interface conforme trilha de validação

Infraestrutura

  • Docker / Docker Compose: docker-compose.sqlite.yml (apenas app + SQLite); modo contingência quando necessário
  • Maven: Build e dependências
  • jpackage / ZIP portátil: Empacotamento Windows conforme canal de release

Como Funciona

Fluxo de Venda

1
Seleção de Vendedor

Operador escolhe o vendedor e inicia nova venda

2
Itens no Carrinho

Produtos por código, leitor ou busca; HTMX atualiza o carrinho

3
Pagamento

Dinheiro, cartão, PIX (QR Code / webhook)

4
Finalização

Venda salva em SQLite (modo contingência usa SQLite local); sync quando online

Camadas da Aplicação

Apresentação

Thymeleaf, Bootstrap 5, HTMX, ApexCharts, formulários e telas de PDV, dashboard, relatórios

API e Controllers

Controllers REST e MVC, endpoints para dashboard, PIX, cadastros; detecção de requisições HTMX

Negócio

Services: Venda, Pagamento, Produto, Cliente, Estoque, Dashboard, Outbox, Sync, Contingência

Dados

JPA/Hibernate, SQLite (banco único do projeto); modo contingência usa SQLite local; Repositories e migrações

Perfis de acesso: Administrador (configurações e usuários), Operador (caixa e operações do dia a dia), Visitante (apenas consultas).

Setup e Quick Start

Pré-requisitos

  • Java 21 (JDK)
  • Maven 3.6+ (ou use mvnw)
  • SQLite (embutido; sem servidor de banco separado)
  • Git

Executar

# Oferta publica atual (Windows)
1. Baixe o pacote em ../download.html
2. Extraia o arquivo em uma pasta local
3. Abra o aplicativo
4. No primeiro acesso, o servidor local e o SQLite são preparados automaticamente

# Referencia tecnica do runtime atual
mvn -pl pdv-apps -am quarkus:dev
Docker Compose

Somente SQLite (recomendado para pequenos e médios):

docker-compose -f docker/docker-compose.sqlite.yml up -d

Um único container; na primeira subida a carga inicial é aplicada automaticamente. Banco em /data/caracore-pdv.db (volume sqlite_data).

Modo contingência: docker-compose.contingency.yml quando necessário. Materiais operacionais detalhados de engenharia permanecem fora da trilha pública da loja.

Para uso de balcão e validação comercial, o caminho principal continua sendo o pacote Windows publicado na loja.

Links e Documentação

Documentação pública da loja: páginas HTML desta wiki, com guia operacional atual, arquivo de apoio quando necessário e descrição institucional do produto. Materiais técnicos internos permanecem fora da trilha pública da loja.

Sobre o Projeto

CaraCore PDV é um produto proprietário da Cara Core Informática. Para demos, implantação ou consultoria, utilize os links da seção anterior ou o site principal da empresa.