Plataforma premium de controle financeiro e fiscal para agências e empresas brasileiras, com foco em operação real: entradas, despesas, relatórios, simulação tributária e gestão de DAS/Fator R.
- Visão geral
- Funcionalidades
- Stack técnica
- Segurança aplicada
- Requisitos
- Como executar
- Variáveis de ambiente
- Estrutura do projeto
- Página Sobre
- Exportações inteligentes
- Build de executável e instalador
- CI no GitHub Actions
- Roadmap imediato
- Contribuição e segurança
- Aviso importante
O INFinance foi projetado para centralizar a operação financeira/fiscal de negócios de serviço no Brasil, permitindo:
- Controle de clientes, serviços e movimentações.
- Estimativa tributária por tipo de operação.
- Gestão de despesas e resultado mensal.
- Simulação de DAS com suporte a múltiplos anexos e Fator R.
- Exportação de dados em formatos prontos para operação e análise.
- Cadastro de clientes (PF/PJ).
- Cadastro de serviços com:
- tipo do serviço;
- alíquota personalizada;
- CNAE e descrição;
- anexo (I, II, III, IV, V ou III/V);
- aplicabilidade de Fator R.
- Cadastro de entradas/receitas com:
- canal PF/PJ;
- status da entrada;
- emissão de nota;
- estimativa de tributos por cenário.
- Cadastro de despesas/saídas com categorias e recorrência (fixa/variável).
- CRUD completo para clientes, serviços, entradas e despesas.
- Busca textual e paginação nas listagens para operação com bases maiores.
- Dashboard executivo com totais, margens e indicadores.
- Relatório mensal consolidado com insights automáticos.
- Simulador de entrada fiscal.
- DAS/Fator R avançado com cenários por anexos.
- Autenticação com RBAC básico (
admin,operator,viewer) e gestão de usuários. - Gestão de usuários com criação, renomeação, redefinição de senha e exclusão segura (usuário padrão protegido).
- Layout responsivo (desktop, tablet e mobile).
- Navegação por abas com estado ativo.
- Menu mobile com botão de ícone (hambúrguer/fechar).
- Favicon e identidade visual do sistema.
- Paginação numérica nas listagens com filtros preservados.
- Feedback visual de envio em formulários (
Processando...) para evitar cliques duplicados. - Feedback de geração nos links de exportação (
Gerando...) para downloads pesados.
- Backend: Flask 3.1.3 (Python)
- Banco: SQLite (
infinance.db) - Frontend: Jinja2 + Tailwind CSS compilado (
static/vendor/tailwind.compiled.css) - Exportações: CSV, XLSX (openpyxl), TXT, PDF (reportlab)
- Proteção CSRF em formulários (
before_request). - Cabeçalhos de segurança HTTP (
X-Frame-Options,CSP, etc.). CSPrestritiva comscript-src 'self'estyle-src 'self'(semunsafe-inline).SESSION_COOKIE_HTTPONLYeSESSION_COOKIE_SAMESITE=Lax.SESSION_COOKIE_SECUREconfigurado de forma condicional (ambiente).SECRET_KEYcom suporte a env var e fallback persistente em.infinance.secret.- Bloqueio padrão de bind remoto (exige
INFINANCE_ALLOW_REMOTE=1para exposição externa). - Inicialização do banco com proteção contra execução duplicada.
Para processo de reporte de vulnerabilidades, veja SECURITY.md.
- Python 3.x
- Pip atualizado
- Node.js 20+ (para build do CSS Tailwind)
- Windows (script
.bat) ou ambiente compatível para execução manual
Dependências Python:
- Flask==3.1.3
- openpyxl==3.1.5
- reportlab==4.4.10
infinance.batO script:
- cria
.venvse necessário; - instala/atualiza dependências;
- encontra porta disponível automaticamente;
- carrega/gera chave local;
- inicia a aplicação e abre no navegador.
Credenciais iniciais (quando não informadas por variável de ambiente):
- Usuário:
admin - Senha:
Admin@123(troca recomendada no primeiro acesso)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python app.pyAplicação padrão: http://127.0.0.1:5000
| Variável | Descrição | Exemplo |
|---|---|---|
INFINANCE_HOST |
Host de bind do servidor Flask | 127.0.0.1 |
INFINANCE_PORT |
Porta de execução | 5000 |
INFINANCE_DEBUG |
Ativa debug em localhost | 0 / 1 |
INFINANCE_ALLOW_REMOTE |
Permite bind externo (somente se necessário) | 0 / 1 |
INFINANCE_WAITRESS_THREADS |
Número de threads do Waitress no modo produção | 8 |
INFINANCE_ADMIN_USER |
Usuário admin inicial no bootstrap | admin |
INFINANCE_ADMIN_PASSWORD |
Senha admin inicial no bootstrap | SenhaForte123! |
INFINANCE_SECRET_KEY |
Chave secreta da sessão (prioridade máxima) | chave_forte |
SECRET_KEY |
Alternativa para chave secreta | chave_forte |
INFINANCE_SESSION_COOKIE_SECURE |
Força cookie secure (true/false) |
true |
INFINANCE_NO_BROWSER |
Evita abrir navegador no .bat |
1 |
INFINANCE_DATA_DIR |
Diretório de dados no executável (DB/chave) | C:\Dados\INFinance |
Se nenhuma chave for informada, o sistema usa .infinance.secret como fallback persistente.
infinance/
├─ .github/workflows/ci.yml
├─ app.py
├─ core/
│ └─ access_control.py
├─ infinance.spec
├─ infinance.bat
├─ installer/INFinance.iss
├─ requirements.txt
├─ requirements-build.txt
├─ scripts/
│ ├─ build_executable.ps1
│ └─ build_installer.ps1
├─ static/
│ ├─ app.css
│ ├─ app.js
│ ├─ infinance-icon.svg
│ └─ vendor/
│ ├─ tailwind.compiled.css
│ └─ tailwind.input.css
├─ tailwind.config.js
├─ package.json
├─ package-lock.json
├─ templates/
│ └─ *.html
├─ tests/
│ ├─ test_auth_and_calculations.py
│ └─ test_routes_smoke.py
├─ infinance.db
└─ .infinance.secret
A rota /about apresenta o propósito do projeto, pilares do produto e os autores.
É uma área institucional para reforçar contexto, confiança e identidade do INFinance.
O sistema exporta com filtro mensal (?month=YYYY-MM) nas rotas de export:
- Entradas: CSV, XLSX, TXT, PDF
- Despesas: CSV, XLSX, TXT, PDF
- Relatório mensal: CSV, XLSX, TXT, PDF
& "C:\Program Files\nodejs\npm.cmd" ci
& "C:\Program Files\nodejs\npm.cmd" run build:css
python -m pip install -r requirements.txt -r requirements-build.txt
powershell -ExecutionPolicy Bypass -File .\scripts\build_executable.ps1 -CleanSaída esperada:
dist\INFinance\INFinance.exe- dados locais do app (DB/chave):
%LOCALAPPDATA%\INFinance
Pré-requisito: Inno Setup 6 instalado (ISCC.exe).
powershell -ExecutionPolicy Bypass -File .\scripts\build_installer.ps1Saída esperada:
dist\installer\INFinance-Setup.exe
Workflow incluído em .github/workflows/ci.yml com:
- instalação de dependências;
- build de CSS Tailwind compilado (
npm ci && npm run build:css); - auditoria de dependências com
pip-audit; - validação de compilação (
compileall); - testes de smoke (
unittest) das rotas principais. - cobertura adicional de RBAC e fluxo CRUD essencial em testes automatizados.
- validação de endpoints de exportação com conferência de MIME e
Content-Disposition. - testes dedicados para fluxo de autenticação (
login/logout) e cálculos fiscais de borda.
- Integração opcional de CNAE por API pública (com cache e validação).
- Ampliação de automações operacionais e governança.
- Evolução contínua de UX e acessibilidade premium.
- Lançamento inicial.
- Guia de contribuição: CONTRIBUTING.md
- Política de segurança: SECURITY.md
As simulações e projeções tributárias do INFinance são apoio à gestão.
O fechamento fiscal/oficial deve ser validado com a contabilidade responsável.
Este projeto está licenciado sob a Licença MIT. Consulte LICENSE para obter detalhes.