Skip to content

Linceu Lighthouse é uma ferramenta de monitoramento que aplica os princípios de Integridade de Arquivos (File Integrity Monitoring - FIM) para fornecer um registro detalhado e transparente de todas as atividades em seus diretórios mais importantes.

License

Notifications You must be signed in to change notification settings

fernandoncidade/Linceu_Lighthouse

Repository files navigation

Selecione o idioma / Select language / Seleccione el idioma / Sélectionnez la langue / Seleziona la lingua / Sprache wählen
🇧🇷 Português (BR) | 🇺🇸 English (US) | 🇪🇸 Español (ES) | 🇫🇷 Français (FR) | 🇮🇹 Italiano (IT) | 🇩🇪 Deutsch (DE)


🇧🇷 Português (BR)

Observação: Este repositório refere-se à versão v0.1.3.0 do Projeto Linceu Lighthouse. Apoie o projeto e adquira a versão paga através do link: Instalar via Microsoft Store

Clique para expandir o README em português

Linceu Lighthouse - Português Linceu Lighthouse - Português Linceu Lighthouse - Português Linceu Lighthouse - Português Linceu Lighthouse - Português Linceu Lighthouse - Português

Projeto: LINCEU LIGHTHOUSE
Versão: v0.1.3.0
Autores: Fernando Nillsson Cidade

Descrição: Visibilidade e Controle sobre Seus Arquivos

Linceu Lighthouse é uma ferramenta de monitoramento que aplica os princípios de Integridade de Arquivos (File Integrity Monitoring - FIM) para fornecer um registro detalhado e transparente de todas as atividades em seus diretórios mais importantes.

Em vez de interpretar a intenção por trás de uma mudança, seu foco é registrar factualmente cada operação—criação, modificação, exclusão e renomeação — dando a você controle e conhecimento total sobre o que acontece.

Principais Casos de Uso

O Linceu Lighthouse oferece a visibilidade necessária para diversos cenários práticos:

  • Auditoria de Atividades em Pastas: Ideal para ambientes onde múltiplos usuários ou processos acessam os mesmos diretórios. Saiba exatamente quando um arquivo foi modificado, quem o renomeou ou por que um documento foi excluído.
  • Controle de Versões e Projetos: Monitore pastas de projetos para entender o fluxo de trabalho. Veja o histórico de alterações em códigos-fonte, documentos de design ou outros materiais, ajudando a evitar perdas acidentais ou alterações não autorizadas.
  • Organização e Limpeza de Arquivos: Identifique arquivos temporários, duplicados ou que não são modificados há muito tempo. Use os relatórios para tomar decisões informadas sobre o que arquivar, mover ou excluir, mantendo seus diretórios enxutos e organizados.
  • Investigação de Eventos Específicos: Se um arquivo importante desaparece ou um projeto para de funcionar, o Linceu Lighthouse fornece o histórico cronológico de eventos para ajudar você a rastrear a causa raiz do problema.

Como o Linceu Lighthouse Funciona?

O processo é direto e focado em fornecer dados claros para sua análise:

  1. Estabelecimento da Linha de Base (Baseline): Ao iniciar o monitoramento de um diretório, o Linceu Lighthouse realiza um escaneamento completo para criar um "snapshot" inicial do estado de todos os arquivos e pastas.
  2. Monitoramento Contínuo: A partir da linha de base, a ferramenta monitora em tempo real e registra cada evento de criação, modificação, exclusão, movimentação ou renomeação que ocorre no diretório.
  3. Análise e Relatório: Qualquer desvio da linha de base é imediatamente listado na interface gráfica. A partir daí, você tem total poder para analisar o que aconteceu, utilizando as ferramentas que o software oferece.

Ferramentas de Análise à sua Disposição

Para transformar o grande volume de dados de monitoramento em informação útil, o Linceu Lighthouse oferece:

  • Filtros Avançados: Não se perca em meio a milhares de eventos. Isole rapidamente o que importa, filtrando por tipo de operação (ex: ver apenas arquivos excluídos), por data, por extensão (.docx, .jpg), ou por usuário.
  • Visualização de Estatísticas: Transforme dados brutos em insights visuais. Com gráficos intuitivos, você pode entender padrões de atividade, como os horários de pico de modificações, os tipos de arquivos mais alterados, e muito mais.
  • Exportação Flexível de Dados: Crie um registro permanente e auditável. Exporte os logs de monitoramento para diversos formatos (Excel, CSV, JSON, XML), seja para arquivamento, para compartilhar com sua equipe, ou para importar em outros sistemas.

MANUAL DE UTILIZAÇÃO RÁPIDO:

Como usar:

  1. Execute o aplicativo para iniciar a interface gráfica.
  2. Selecione um diretório para monitorar.
  3. Utilize os botões e menus para iniciar/parar o monitoramento, aplicar filtros, exportar dados e visualizar estatísticas.

MANUAL DE UTILIZAÇÃO DETALHADO:

Requisitos do Sistema: - Sistema Operacional: Windows 10 ou superior.

Instalação: - Instale o arquivo executável do programa, siga as instruções do instalador e execute o programa.

Configuração Inicial: - A interface será exibida com a tabela de monitoramento vazia. - O idioma padrão será selecionado de acordo com a configuração do sistema. - Observe a barra lateral esquerda para acessar as funções principais.

Monitoramento de Diretórios: 1. Selecionar um Diretório: - Clique no botão "Selecionar Diretório" ou selecione "Arquivo → Selecionar Diretório" - O caminho do diretório selecionado será exibido acima da tabela

2. Iniciar/Parar Monitoramento:
   - Clique no botão "Iniciar/Parar" ou selecione "Arquivo → Iniciar/Parar"
   - Um escaneamento inicial do diretório será realizado com barra de progresso
   - Para interromper o monitoramento, clique novamente no mesmo botão

Interface Principal: - Barra de Menu: Acesso a todas as funções do programa - Barra Lateral: Botões de ações rápidas - Rótulo de Diretório: Exibe o diretório monitorado - Rótulo de Resultado: Mostra o status atual da operação - Tabela de Dados: Exibe todos os eventos de monitoramento - Barra de Progresso: Visível durante operações de longa duração

Campos padrão da tabela:
- Tipo de Operação: Adicionado, Excluído, Modificado, Renomeado ou Movido
- Nome: Nome do arquivo
- Diretório Anterior: Local original do arquivo (quando aplicável)
- Diretório Atual: Local atual do arquivo
- Data de Criação: Data em que o arquivo foi criado
- Data de Modificação: Data da última modificação
- Tipo: Tipo/extensão do arquivo

Filtros e Pesquisa: 1. Filtros Rápidos: - No menu "Configurações → Filtros", marque/desmarque tipos de operações (Movido, Renomeado, Adicionado, Excluído, Modificado)

2. Filtros Avançados:
   - Acesse "Configurações → Filtros → Filtros Avançados"
   - Filtro de Operação: Selecione tipos de operações a visualizar
   - Pesquisa: Busca por texto em nome e diretórios
   - Filtro por Extensão: Filtre por tipos específicos de arquivo
   - Filtro de Data: Defina o período para os eventos
   - Use o botão de calendário para seleção de datas
   - "Limpar Filtros" reseta todas as configurações

Visualização de Estatísticas: - Acesse pelo botão "Estatísticas" ou "Arquivo → Estatísticas" - Gráficos disponíveis: * Distribuição de Operações: Proporção de cada tipo de operação * Top 10 Tipos de Arquivo: Tipos de arquivo mais comuns * Timeline de Operações: Linha do tempo de eventos * Mapa de Árvore: Visualização de tamanho por tipos * Distribuição por Hora: Horários com mais operações * Análise de Pareto: Frequência e percentual acumulado * Operações por Dia: Operações agrupadas por data - Salvar gráficos: Clique em "Salvar Todos" e selecione destino

Exportação de Dados: - Clique em "Salvar Como" ou "Arquivo → Salvar Como" - Formatos disponíveis: * Excel (.xlsx) * CSV (.csv) * Texto (.txt) * JSON (.json) * XML (.xml) * Banco de Dados (.db) - Para exportações futuras do mesmo conjunto, use "Arquivo → Salvar"

Configuração de Colunas: - Acesse "Configurações → Configurar Colunas" - Marque/desmarque colunas desejadas na tabela: (Tipo de Operação, Nome, Diretório Anterior, Diretório Atual, etc.) - Alterações são aplicadas imediatamente - Restauração padrão: "Configurações → Configurar Colunas → Resetar Colunas"

Alteração de Idioma: - Acesse "Opções → Idioma" e selecione o idioma desejado - O programa será reiniciado com o novo idioma após confirmação

Resolução de Problemas: 1. Monitoramento não inicia: - Verifique permissões de acesso ao diretório - Certifique-se que não há outro programa monitorando o mesmo diretório - Reinicie o aplicativo

2. Eventos não aparecem:
    - Verifique se o monitoramento está ativo
    - Confira se os filtros não estão ocultando eventos
    - Teste modificando um arquivo manualmente

3. Alto consumo de recursos:
    - Evite monitorar diretórios de sistema ou com milhares de arquivos
    - Monitore subdiretórios específicos em vez de diretórios raiz

4. Erros nas estatísticas:
    - Certifique-se que há eventos suficientes para gerar gráficos
    - Verifique se todas as bibliotecas estão corretamente instaladas

📋 Documentação Técnica

Visão Geral do Sistema

Linceu Lighthouse é uma aplicação desktop desenvolvida em Python/PySide6 para monitoramento em tempo real de operações em sistemas de arquivos (criação, modificação, exclusão, renomeação, movimentação). Oferece análise estatística avançada, visualização de dados e exportação em múltiplos formatos.

Tecnologias Principais

  • Framework GUI: PySide6 (Qt6)
  • Análise de Dados: pandas, numpy
  • Visualização: matplotlib, seaborn, plotly
  • Banco de Dados: SQLite3 (com otimizações WAL)
  • Multithreading: QThread, concurrent.futures
  • Internacionalização: Qt Linguist (6 idiomas)

📁 Estrutura de Diretórios e Módulos

📂 source/gui/ - Camada de Interface Gráfica

Módulos Principais

  • ic_01_InterfaceMonitor.py - Janela principal da aplicação
  • ic_02_Inicializador.py - Inicialização de componentes GUI
  • ic_03_Configurador.py - Configuração de layouts e widgets
  • ic_04_Atualizador.py - Atualização de interface
  • ic_05_GerenciadorProgresso.py - Barras de progresso
  • ic_06_GerenciadorMensagens.py - Sistema de notificações
  • ic_07_ManipuladorTabela.py - Operações em tabelas
  • ic_08_Internacionalizador.py - Sistema de traduções
  • ic_09_GerenciadorDesempenho.py - Gráficos de CPU/RAM/Disco
  • ic_10_EstruturaDiretoriosWidget.py - Visualização em árvore

📁 GerenciadorDesempenho/ (16 módulos)

Responsável pelo monitoramento de desempenho do sistema em tempo real.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 módulos)

Gerencia a visualização em árvore e operações de arquivos/pastas.

📂 source/services/ - Camada de Lógica de Negócio

Módulos Principais

  • ob_01_Observador.py - Monitoramento via ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Classe base para eventos
  • ob_03_DiretorioScanner.py - Escaneamento recursivo inicial
  • ob_04_EventoAdicionado.py - Processamento de criações
  • ob_05_EventoExcluido.py - Processamento de exclusões
  • ob_06_EventoModificado.py - Detecção de modificações
  • ob_07_EventoRenomeado.py - Detecção de renomeações
  • ob_08_EventoMovido.py - Detecção de movimentações
  • ob_09_GerenciadorColunas.py - Configuração de colunas visíveis
  • ob_10_GerenciadorTabela.py - Operações em tabelas de dados

Subdiretórios Especializados

  • GerenciamentoBaseEvento/ (20 módulos) - Gerenciamento de eventos e banco de dados
  • GerenciamentoDiretorioScanner/ (9 módulos) - Escaneamento de diretórios
  • GerenciamentoEventoModificado/ (7 módulos) - Processamento de modificações
  • GerenciamentoEventoMovido/ (9 módulos) - Detecção de movimentações
  • GerenciamentoMetadados/ (47 módulos) - Extração especializada de metadados
  • GerenciamentoObservador/ (13 módulos) - Controle do observador
  • GerenciamentoTabela/ (47 módulos) - Operações avançadas de tabela
📂 source/ui/ - Componentes de Interface Avançados

Módulos Principais

  • ui_01_GerenciadorBotoes.py - Botões de ação
  • ui_02_GerenciadorBotoesUI.py - Factory de botões
  • ui_03_GerenciadorMenusUI.py - Barra de menus
  • ui_04_GerenciadorEventosUI.py - Handlers de eventos
  • ui_05_GerenciadorProgressoUI.py - Feedback de progresso
  • ui_06_GerenciadorEstatisticasUI.py - Janela de estatísticas
  • ui_07_GerenciadorDados.py - Salvar/Carregar
  • ui_11_DialogoCores.py - Seletor de cores customizado
  • ui_12_LocalizadorQt.py - Sistema de traduções
  • ui_13_TradutorMetadadosQt.py - Tradução de metadados

Subdiretórios

  • GerenciamentoBotoes/ (6 módulos)
  • GerenciamentoDialogoCores/ (8 módulos)
  • GerenciamentoEstatisticasUI/ (31 módulos)
  • GerenciamentoEventosUI/ (11 módulos)
  • GerenciamentoLocalizadorQt/ (14 módulos)
  • GerenciamentoMenusUI/ (23 módulos)
  • GerenciamentoTradutorMetadadosQt/ (9 módulos)
📂 source/data/ - Geração de Estatísticas e Gráficos

18 Tipos de Gráficos Disponíveis

  • Pizza - Distribuição de operações
  • Barras - Top 30 tipos de arquivo
  • Timeline - Linha do tempo
  • Treemap - Mapa de árvore
  • Histograma - Distribuição por hora
  • Pareto - Análise 80/20
  • Linha - Evolução temporal
  • Boxplot - Distribuição de tamanhos
  • Radar - Eventos por hora/dia
  • Heatmap - Mapa de calor temporal
  • Scatter - Análise tamanho vs tempo
  • Sankey (3 variações) - Fluxo de operações
  • Dotplot - Distribuição de tamanhos
  • Árvore - Estrutura de diretórios
📂 source/tools/ - Ferramentas e Utilitários de UI

Módulos de Filtros

  • fil_01_Filtros.py - Janela de filtros avançados
  • fil_02_AdministradorCalendario.py - Seletor de datas
  • fil_03_AdministradorFiltros.py - Lógica de filtragem

Subdiretórios

  • GerenciamentoAdministradorFiltros/ (10 módulos)
  • GerenciamentoFiltros/ (10 módulos)
📂 source/utils/ - Utilitários Transversais
  • LogManager.py - Sistema centralizado de logs com rotação automática
  • IconUtils.py - Gerenciamento de ícones e recursos visuais
  • CaminhoPersistenteUtils.py - Paths de configuração multiplataforma
  • ApplicationPathUtils.py - Paths da aplicação e recursos
📂 source/locale/ - Internacionalização

Arquivos de Tradução

  • linceu_pt_BR.ts - Português (Brasil) - 600+ strings
  • linceu_en_US.ts - English (United States)
  • linceu_es_ES.ts - Español (España)
  • linceu_fr_FR.ts - Français (France)
  • linceu_it_IT.ts - Italiano (Italia)
  • linceu_de_DE.ts - Deutsch (Deutschland)

Ferramentas

  • compile_translations.py - Script de compilação e validação de traduções

🏗️ Arquitetura e Padrões de Design

Princípios SOLID Aplicados

  • [S] Single Responsibility: Cada módulo tem uma responsabilidade única
  • [O] Open/Closed: Extensível via herança (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: Todos os geradores de gráfico são intercambiáveis
  • [I] Interface Segregation: Interfaces específicas por tipo de evento
  • [D] Dependency Inversion: Injeção de dependências (loc, interface, db_path)

Padrões de Design Implementados

  • Observer Pattern: Monitoramento de arquivos
  • Factory Pattern: Criação de botões e componentes
  • Strategy Pattern: Diferentes estratégias de exportação
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador define esqueleto
  • Facade Pattern: GerenciadorEstatisticasUI simplifica acesso

Multithreading e Performance

  • QThread para operações longas (escaneamento, gráficos)
  • ThreadPoolExecutor para processamento paralelo
  • DatabaseWriter com thread dedicada
  • Debouncing inteligente para eventos
  • Cache com invalidação seletiva
  • Batch processing para inserções

Otimizações de Banco de Dados

  • SQLite com modo WAL (Write-Ahead Logging)
  • Índices em colunas frequentes
  • Transações em lote
  • PRAGMA optimizations
  • Thread dedicada para I/O

🔄 Fluxo de Execução Principal

1. INICIALIZAÇÃO
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. SELEÇÃO DE DIRETÓRIO
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. INÍCIO DO MONITORAMENTO
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. PROCESSAMENTO DE EVENTOS
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. ATUALIZAÇÃO DA INTERFACE
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. GERAÇÃO DE ESTATÍSTICAS
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. EXPORTAÇÃO DE DADOS
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. MUDANÇA DE IDIOMA
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Requisitos e Dependências

Bibliotecas Principais

PySide6>=6.5.0           # Framework Qt6
pandas>=2.0.0            # Análise de dados
matplotlib>=3.7.0        # Visualização de gráficos
seaborn>=0.12.0          # Gráficos estatísticos
plotly==5.22.0           # Gráficos interativos
Pillow>=10.0.0           # Processamento de imagens
tinytag>=1.10.0          # Metadados de áudio
pymediainfo>=6.0.0       # Metadados de vídeo
PyPDF2>=3.0.0            # Metadados de PDF
openpyxl>=3.1.0          # Leitura/escrita Excel
python-docx>=0.8.11      # Metadados de DOCX
chardet>=5.1.0           # Detecção de encoding
squarify>=0.4.3          # Gráficos treemap
psutil>=5.9.0            # Monitoramento de sistema
pywin32>=305             # API Windows

Requisitos de Sistema

  • Sistema Operacional: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4GB mínimo (8GB recomendado)
  • Disco: 100MB espaço disponível

✨ Funcionalidades Principais

Monitoramento em Tempo Real
  • ✓ Detecção de criação de arquivos/pastas
  • ✓ Detecção de exclusão de arquivos/pastas
  • ✓ Detecção de modificação de conteúdo
  • ✓ Detecção de renomeação
  • ✓ Detecção de movimentação entre pastas
  • ✓ Distinção entre operações de arquivo vs diretório
  • ✓ Debouncing inteligente para arquivos grandes
  • ✓ Suporte a operações massivas (batch)
Extração de Metadados (47 módulos especializados)
  • Código-fonte: linhas, classes, funções, imports
  • Imagens: dimensões, EXIF, formato, DPI
  • Áudio: duração, bitrate, artista, álbum
  • Vídeo: codec, resolução, taxa de frames, duração
  • Documentos: páginas, palavras, autor, data criação
  • Planilhas: número de sheets, linhas, colunas
  • Apresentações: número de slides
  • Compactados: arquivos contidos, tamanho descompactado
  • Bancos de dados: tabelas, registros
  • Executáveis: versão, assinatura digital, arquitetura
  • Logs: primeira/última entrada, número de linhas
  • Configurações: formato detectado
Visualização de Dados (18 tipos de gráficos)
  • ✓ Pizza: Distribuição de operações
  • ✓ Barras: Top tipos de arquivo
  • ✓ Timeline: Linha do tempo de eventos
  • ✓ Treemap: Hierarquia de tipos
  • ✓ Histograma: Distribuição por hora
  • ✓ Pareto: Análise 80/20
  • ✓ Linha: Evolução temporal diária
  • ✓ Boxplot: Distribuição de tamanhos
  • ✓ Radar: Eventos por hora/dia/tipo
  • ✓ Heatmap: Mapa de calor temporal
  • ✓ Scatter: Tamanho vs tempo
  • ✓ Sankey: Fluxo de operações/tipos/caminhos
  • ✓ Dotplot: Distribuição de tamanhos
  • ✓ Árvore: Estrutura de diretórios
Filtros Avançados
  • ✓ Por tipo de operação
  • ✓ Por tipo de arquivo (extensão)
  • ✓ Por intervalo de datas
  • ✓ Por nome/texto contido
  • ✓ Combinação de múltiplos filtros
  • ✓ Taxa de filtragem em tempo real
  • ✓ Sincronização com menu principal
Exportação de Dados
  • ✓ Excel (.xlsx) - com formatação
  • ✓ CSV (.csv) - delimitado por vírgula
  • ✓ JSON (.json) - estruturado
  • ✓ XML (.xml) - hierárquico
  • ✓ SQLite (.db) - banco completo
  • ✓ Texto (.txt) - simples
  • ✓ Opções: apenas visíveis, filtros ativos, seleção
Internacionalização
  • ✓ 6 idiomas suportados
  • ✓ Tradução completa de interface
  • ✓ Tradução de metadados
  • ✓ Tradução de tipos de operação
  • ✓ Mudança em tempo real (sem restart)
  • ✓ Persistência de preferência
  • ✓ Fallback para inglês

🎯 Boas Práticas Implementadas

Código Limpo (Clean Code)

  • ✓ Nomes descritivos e autoexplicativos
  • ✓ Funções pequenas e focadas (< 50 linhas)
  • ✓ Evitar números mágicos (usar constantes)
  • ✓ Documentação no código (docstrings)
  • ✓ Formatação consistente
  • ✓ Evitar duplicação de código (DRY)

Performance

  • ✓ Lazy loading de metadados
  • ✓ Cache de resultados frequentes
  • ✓ Processamento assíncrono
  • ✓ Batch processing
  • ✓ Índices otimizados no banco
  • ✓ Uso eficiente de memória

Manutenibilidade

  • ✓ Modularização extrema (200+ módulos)
  • ✓ Separação de responsabilidades
  • ✓ Baixo acoplamento
  • ✓ Alta coesão
  • ✓ Padrões de nomenclatura consistentes

🚀 Para Adicionar Novos Recursos

  • Novo tipo de gráfico: Herdar de data/GeradorEstatisticas/gst_01_base_gerador.py
  • Novo tipo de evento: Herdar de services/ob_02_BaseEvento.py
  • Nova coluna: Adicionar getter em services/ob_09_GerenciadorColunas.py
  • Novo idioma: Criar linceu_XX.ts em source/locale/
  • Novo filtro: Adicionar em tools/GerenciamentoAdministradorFiltros/

📝 Notas Importantes

Versões Específicas de Bibliotecas

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

Arquivos Críticos

  • monitoramento.db - Banco de dados principal (SQLite)
  • language_config.json - Preferência de idioma
  • colunas_coloridas.json - Configuração de cores
  • cores_operacoes.json - Cores por tipo de operação
  • config.json - Configurações gerais

Logs

Sistema de logs com rotação automática em:

%APPDATA%/Linceu_Lighthouse/logs/

📄 Licença e Autoria

Autores: Fernando Nillsson Cidade
Versão: v0.1.3.0
Licença: GNU Affero General Public License v3.0 (AGPL-3.0)

Para mais informações, consulte a documentação específica de cada módulo no código-fonte.



🇺🇸 English (US)

Note: This repository refers to the v0.1.3.0 version of the Linceu Lighthouse Project. Support the project and purchase the paid version through the link: Install via Microsoft Store

Click to expand the README in English

Linceu Lighthouse - English Linceu Lighthouse - English Linceu Lighthouse - English Linceu Lighthouse - English Linceu Lighthouse - English Linceu Lighthouse - English

Project: LINCEU LIGHTHOUSE
Version: v0.1.3.0
Authors: Fernando Nillsson Cidade

Description: Visibility and Control Over Your Files

Linceu Lighthouse is a monitoring tool that applies the principles of File Integrity Monitoring (FIM) to provide a detailed and transparent log of all activities in your most important directories.

Instead of interpreting the intent behind a change, its focus is to factually record every operation—creation, modification, deletion, and renaming—giving you total control and knowledge of what happens.

Main Use Cases

Linceu Lighthouse provides the necessary visibility for various practical scenarios:

  • Auditing Folder Activities: Ideal for environments where multiple users or processes access the same directories. Know exactly when a file was modified, who renamed it, or why a document was deleted.
  • Version and Project Control: Monitor project folders to understand the workflow. View the history of changes in source code, design documents, or other materials, helping to prevent accidental losses or unauthorized changes.
  • File Organization and Cleanup: Identify temporary, duplicate, or long-unmodified files. Use the reports to make informed decisions about what to archive, move, or delete, keeping your directories lean and organized.
  • Investigating Specific Events: If an important file disappears or a project stops working, Linceu Lighthouse provides a chronological history of events to help you trace the root cause of the problem.

How Linceu Lighthouse Works

The process is straightforward and focused on providing clear data for your analysis:

  1. Establishing the Baseline: When starting to monitor a directory, Linceu Lighthouse performs a full scan to create an initial "snapshot," or baseline, of the state of all files and folders.
  2. Continuous Monitoring: From the baseline, the tool monitors in real-time and records every creation, modification, deletion, move, or renaming event that occurs in the directory.
  3. Analysis and Reporting: Any deviation from the baseline is immediately listed in the graphical interface. From there, you have full power to analyze what happened, using the tools the software offers.

Analysis Tools at Your Disposal

To transform the large volume of monitoring data into useful information, Linceu Lighthouse offers:

  • Advanced Filters: Don't get lost among thousands of events. Quickly isolate what matters by filtering by operation type (e.g., view only deleted files), by date, by extension (.docx, .jpg), or by user.
  • Statistics Visualization: Turn raw data into visual insights. With intuitive charts, you can understand activity patterns, such as peak modification times, the most frequently changed file types, and more.
  • Flexible Data Export: Create a permanent and auditable record. Export monitoring logs to various formats (Excel, CSV, JSON, XML), whether for archiving, sharing with your team, or importing into other systems.

QUICK USE MANUAL:

How to use:

  1. Run the application to start the graphical interface.
  2. Select a directory to monitor.
  3. Use the buttons and menus to start/stop monitoring, apply filters, export data, and view statistics.

DETAILED USER MANUAL:

System Requirements: - Operating System: Windows 10 or higher.

Installation: - Install the program's executable file, follow the installer's instructions, and run the program.

Initial Setup: - The interface will be displayed with an empty monitoring table. - The default language will be selected according to the system settings. - Note the left sidebar to access the main functions.

Directory Monitoring: 1. Select a Directory: - Click the "Select Directory" button or select "File → Select Directory" - The path of the selected directory will be displayed above the table

2. Start/Stop Monitoring:
   - Click the "Start/Stop" button or select "File → Start/Stop"
   - An initial scan of the directory will be performed with a progress bar
   - To stop monitoring, click the same button again

Main Interface: - Menu Bar: Access to all program functions - Sidebar: Quick action buttons - Directory Label: Displays the monitored directory - Result Label: Shows the current status of the operation - Data Table: Displays all monitoring events - Progress Bar: Visible during long-running operations

Default table fields:
- Operation Type: Added, Deleted, Modified, Renamed, or Moved
- Name: File name
- Previous Directory: Original location of the file (when applicable)
- Current Directory: Current location of the file
- Creation Date: Date the file was created
- Modification Date: Date of the last modification
- Type: File type/extension

Filters and Search: 1. Quick Filters: - In the "Settings → Filters" menu, check/uncheck operation types (Moved, Renamed, Added, Deleted, Modified)

2. Advanced Filters:
   - Access "Settings → Filters → Advanced Filters"
   - Operation Filter: Select operation types to view
   - Search: Search for text in names and directories
   - Extension Filter: Filter by specific file types
   - Date Filter: Define the period for events
   - Use the calendar button for date selection
   - "Clear Filters" resets all settings

Statistics Visualization: - Access via the "Statistics" button or "File → Statistics" - Available charts: * Operation Distribution: Proportion of each operation type * Top 10 File Types: Most common file types * Operation Timeline: Timeline of events * Tree Map: Size visualization by types * Distribution by Hour: Times with the most operations * Pareto Analysis: Frequency and cumulative percentage * Operations by Day: Operations grouped by date - Save charts: Click "Save All" and select a destination

Data Export: - Click "Save As" or "File → Save As" - Available formats: * Excel (.xlsx) * CSV (.csv) * Text (.txt) * JSON (.json) * XML (.xml) * Database (.db) - For future exports of the same set, use "File → Save"

Column Configuration: - Access "Settings → Configure Columns" - Check/uncheck desired columns in the table: (Operation Type, Name, Previous Directory, Current Directory, etc.) - Changes are applied immediately - Default restoration: "Settings → Configure Columns → Reset Columns"

Language Change: - Access "Options → Language" and select the desired language - The program will restart with the new language after confirmation

Troubleshooting: 1. Monitoring does not start: - Check directory access permissions - Make sure no other program is monitoring the same directory - Restart the application

2. Events do not appear:
    - Check if monitoring is active
    - Check if filters are not hiding events
    - Test by manually modifying a file

3. High resource consumption:
    - Avoid monitoring system directories or those with thousands of files
    - Monitor specific subdirectories instead of root directories

4. Errors in statistics:
    - Ensure there are enough events to generate charts
    - Check if all libraries are correctly installed

📋 Technical Documentation

System Overview

Linceu Lighthouse is a desktop application developed in Python/PySide6 for real-time monitoring of file system operations (creation, modification, deletion, renaming, moving). It offers advanced statistical analysis, data visualization, and export in multiple formats.

Main Technologies

  • GUI Framework: PySide6 (Qt6)
  • Data Analysis: pandas, numpy
  • Visualization: matplotlib, seaborn, plotly
  • Database: SQLite3 (with WAL optimizations)
  • Multithreading: QThread, concurrent.futures
  • Internationalization: Qt Linguist (6 languages)

📁 Directory and Module Structure

📂 source/gui/ - Graphical Interface Layer

Main Modules

  • ic_01_InterfaceMonitor.py - Main application window
  • ic_02_Inicializador.py - GUI component initialization
  • ic_03_Configurador.py - Layout and widget configuration
  • ic_04_Atualizador.py - Interface update
  • ic_05_GerenciadorProgresso.py - Progress bars
  • ic_06_GerenciadorMensagens.py - Notification system
  • ic_07_ManipuladorTabela.py - Table operations
  • ic_08_Internacionalizador.py - Translation system
  • ic_09_GerenciadorDesempenho.py - CPU/RAM/Disk charts
  • ic_10_EstruturaDiretoriosWidget.py - Tree view

📁 GerenciadorDesempenho/ (16 modules)

Responsible for real-time system performance monitoring.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 modules)

Manages tree view and file/folder operations.

📂 source/services/ - Business Logic Layer

Main Modules

  • ob_01_Observador.py - Monitoring via ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Base class for events
  • ob_03_DiretorioScanner.py - Initial recursive scanning
  • ob_04_EventoAdicionado.py - Creation processing
  • ob_05_EventoExcluido.py - Deletion processing
  • ob_06_EventoModificado.py - Modification detection
  • ob_07_EventoRenomeado.py - Renaming detection
  • ob_08_EventoMovido.py - Move detection
  • ob_09_GerenciadorColunas.py - Visible column configuration
  • ob_10_GerenciadorTabela.py - Data table operations

Specialized Subdirectories

  • GerenciamentoBaseEvento/ (20 modules) - Event and database management
  • GerenciamentoDiretorioScanner/ (9 modules) - Directory scanning
  • GerenciamentoEventoModificado/ (7 modules) - Modification processing
  • GerenciamentoEventoMovido/ (9 modules) - Move detection
  • GerenciamentoMetadados/ (47 modules) - Specialized metadata extraction
  • GerenciamentoObservador/ (13 modules) - Observer control
  • GerenciamentoTabela/ (47 modules) - Advanced table operations
📂 source/ui/ - Advanced Interface Components

Main Modules

  • ui_01_GerenciadorBotoes.py - Action buttons
  • ui_02_GerenciadorBotoesUI.py - Button factory
  • ui_03_GerenciadorMenusUI.py - Menu bar
  • ui_04_GerenciadorEventosUI.py - Event handlers
  • ui_05_GerenciadorProgressoUI.py - Progress feedback
  • ui_06_GerenciadorEstatisticasUI.py - Statistics window
  • ui_07_GerenciadorDados.py - Save/Load
  • ui_11_DialogoCores.py - Custom color picker
  • ui_12_LocalizadorQt.py - Translation system
  • ui_13_TradutorMetadadosQt.py - Metadata translation

Subdirectories

  • GerenciamentoBotoes/ (6 modules)
  • GerenciamentoDialogoCores/ (8 modules)
  • GerenciamentoEstatisticasUI/ (31 modules)
  • GerenciamentoEventosUI/ (11 modules)
  • GerenciamentoLocalizadorQt/ (14 modules)
  • GerenciamentoMenusUI/ (23 modules)
  • GerenciamentoTradutorMetadadosQt/ (9 modules)
📂 source/data/ - Statistics and Chart Generation

18 Available Chart Types

  • Pie - Operation distribution
  • Bar - Top 30 file types
  • Timeline - Time line
  • Treemap - Tree map
  • Histogram - Distribution by hour
  • Pareto - 80/20 analysis
  • Line - Temporal evolution
  • Boxplot - Size distribution
  • Radar - Events by hour/day
  • Heatmap - Temporal heat map
  • Scatter - Size vs time analysis
  • Sankey (3 variations) - Operation flow
  • Dotplot - Size distribution
  • Tree - Directory structure
📂 source/tools/ - UI Tools and Utilities

Filter Modules

  • fil_01_Filtros.py - Advanced filters window
  • fil_02_AdministradorCalendario.py - Date picker
  • fil_03_AdministradorFiltros.py - Filtering logic

Subdirectories

  • GerenciamentoAdministradorFiltros/ (10 modules)
  • GerenciamentoFiltros/ (10 modules)
📂 source/utils/ - Cross-Cutting Utilities
  • LogManager.py - Centralized logging system with automatic rotation
  • IconUtils.py - Icon and visual resource management
  • CaminhoPersistenteUtils.py - Cross-platform configuration paths
  • ApplicationPathUtils.py - Application and resource paths
📂 source/locale/ - Internationalization

Translation Files

  • linceu_pt_BR.ts - Portuguese (Brazil) - 600+ strings
  • linceu_en_US.ts - English (United States)
  • linceu_es_ES.ts - Spanish (Spain)
  • linceu_fr_FR.ts - French (France)
  • linceu_it_IT.ts - Italian (Italy)
  • linceu_de_DE.ts - German (Germany)

Tools

  • compile_translations.py - Translation compilation and validation script

🏗️ Architecture and Design Patterns

Applied SOLID Principles

  • [S] Single Responsibility: Each module has a single responsibility
  • [O] Open/Closed: Extensible via inheritance (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: All chart generators are interchangeable
  • [I] Interface Segregation: Specific interfaces per event type
  • [D] Dependency Inversion: Dependency injection (loc, interface, db_path)

Implemented Design Patterns

  • Observer Pattern: File monitoring
  • Factory Pattern: Button and component creation
  • Strategy Pattern: Different export strategies
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador defines skeleton
  • Facade Pattern: GerenciadorEstatisticasUI simplifies access

Multithreading and Performance

  • QThread for long operations (scanning, charts)
  • ThreadPoolExecutor for parallel processing
  • DatabaseWriter with dedicated thread
  • Smart debouncing for events
  • Cache with selective invalidation
  • Batch processing for insertions

Database Optimizations

  • SQLite with WAL mode (Write-Ahead Logging)
  • Indexes on frequent columns
  • Batch transactions
  • PRAGMA optimizations
  • Dedicated thread for I/O

🔄 Main Execution Flow

1. INITIALIZATION
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. DIRECTORY SELECTION
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. START MONITORING
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. EVENT PROCESSING
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. INTERFACE UPDATE
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. STATISTICS GENERATION
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. DATA EXPORT
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. LANGUAGE CHANGE
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Requirements and Dependencies

Main Libraries

PySide6>=6.5.0           # Qt6 Framework
pandas>=2.0.0            # Data analysis
matplotlib>=3.7.0        # Chart visualization
seaborn>=0.12.0          # Statistical charts
plotly==5.22.0           # Interactive charts
Pillow>=10.0.0           # Image processing
tinytag>=1.10.0          # Audio metadata
pymediainfo>=6.0.0       # Video metadata
PyPDF2>=3.0.0            # PDF metadata
openpyxl>=3.1.0          # Excel read/write
python-docx>=0.8.11      # DOCX metadata
chardet>=5.1.0           # Encoding detection
squarify>=0.4.3          # Treemap charts
psutil>=5.9.0            # System monitoring
pywin32>=305             # Windows API

System Requirements

  • Operating System: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4GB minimum (8GB recommended)
  • Disk: 100MB available space

✨ Main Features

Real-Time Monitoring
  • ✓ File/folder creation detection
  • ✓ File/folder deletion detection
  • ✓ Content modification detection
  • ✓ Renaming detection
  • ✓ Move detection between folders
  • ✓ Distinction between file vs directory operations
  • ✓ Smart debouncing for large files
  • ✓ Batch operation support
Metadata Extraction (47 specialized modules)
  • Source code: lines, classes, functions, imports
  • Images: dimensions, EXIF, format, DPI
  • Audio: duration, bitrate, artist, album
  • Video: codec, resolution, frame rate, duration
  • Documents: pages, words, author, creation date
  • Spreadsheets: number of sheets, rows, columns
  • Presentations: number of slides
  • Compressed: contained files, uncompressed size
  • Databases: tables, records
  • Executables: version, digital signature, architecture
  • Logs: first/last entry, number of lines
  • Configuration: detected format
Data Visualization (18 chart types)
  • ✓ Pie: Operation distribution
  • ✓ Bar: Top file types
  • ✓ Timeline: Event timeline
  • ✓ Treemap: Type hierarchy
  • ✓ Histogram: Distribution by hour
  • ✓ Pareto: 80/20 analysis
  • ✓ Line: Daily temporal evolution
  • ✓ Boxplot: Size distribution
  • ✓ Radar: Events by hour/day/type
  • ✓ Heatmap: Temporal heat map
  • ✓ Scatter: Size vs time
  • ✓ Sankey: Operation/type/path flow
  • ✓ Dotplot: Size distribution
  • ✓ Tree: Directory structure
Advanced Filters
  • ✓ By operation type
  • ✓ By file type (extension)
  • ✓ By date range
  • ✓ By name/contained text
  • ✓ Multiple filter combination
  • ✓ Real-time filtering rate
  • ✓ Synchronization with main menu
Data Export
  • ✓ Excel (.xlsx) - with formatting
  • ✓ CSV (.csv) - comma delimited
  • ✓ JSON (.json) - structured
  • ✓ XML (.xml) - hierarchical
  • ✓ SQLite (.db) - complete database
  • ✓ Text (.txt) - simple
  • ✓ Options: visible only, active filters, selection
Internationalization
  • ✓ 6 supported languages
  • ✓ Complete interface translation
  • ✓ Metadata translation
  • ✓ Operation type translation
  • ✓ Real-time change (no restart)
  • ✓ Preference persistence
  • ✓ English fallback

🎯 Implemented Best Practices

Clean Code

  • ✓ Descriptive and self-explanatory names
  • ✓ Small and focused functions (< 50 lines)
  • ✓ Avoid magic numbers (use constants)
  • ✓ Code documentation (docstrings)
  • ✓ Consistent formatting
  • ✓ Avoid code duplication (DRY)

Performance

  • ✓ Lazy loading of metadata
  • ✓ Frequent result caching
  • ✓ Asynchronous processing
  • ✓ Batch processing
  • ✓ Optimized database indexes
  • ✓ Efficient memory usage

Maintainability

  • ✓ Extreme modularization (200+ modules)
  • ✓ Separation of concerns
  • ✓ Low coupling
  • ✓ High cohesion
  • ✓ Consistent naming patterns

🚀 To Add New Features

  • New chart type: Inherit from data/GeradorEstatisticas/gst_01_base_gerador.py
  • New event type: Inherit from services/ob_02_BaseEvento.py
  • New column: Add getter in services/ob_09_GerenciadorColunas.py
  • New language: Create linceu_XX.ts in source/locale/
  • New filter: Add in tools/GerenciamentoAdministradorFiltros/

📝 Important Notes

Specific Library Versions

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

Critical Files

  • monitoramento.db - Main database (SQLite)
  • language_config.json - Language preference
  • colunas_coloridas.json - Color configuration
  • cores_operacoes.json - Colors by operation type
  • config.json - General settings

Logs

Logging system with automatic rotation at:

%APPDATA%/Linceu_Lighthouse/logs/

📄 License and Authorship

Authors: Fernando Nillsson Cidade
Version: v0.1.3.0
License: GNU Affero General Public License v3.0 (AGPL-3.0)

For more information, consult the specific documentation of each module in the source code.



🇪🇸 Español (ES)

Nota: Este repositorio se refere à versão v0.1.3.0 do Projeto Linceu Lighthouse. Apoya el proyecto y adquiere la versión de pago a través del enlace: Instalar vía Microsoft Store

Haz clic para expandir el README en español

Linceu Lighthouse - Español Linceu Lighthouse - Español Linceu Lighthouse - Español Linceu Lighthouse - Español Linceu Lighthouse - Español Linceu Lighthouse - Español

Proyecto: LINCEU LIGHTHOUSE
Versión: v0.1.3.0
Autores: Fernando Nillsson Cidade

Descripción: Visibilidad y Control sobre Tus Archivos

Linceu Lighthouse es una herramienta de monitoreo que aplica los principios de Monitoreo de Integridad de Archivos (File Integrity Monitoring - FIM) para proporcionar un registro detallado y transparente de todas las actividades en tus directorios más importantes.

En lugar de interpretar la intención detrás de un cambio, su enfoque é registrar de maneira fáctica cada operação—criação, modificação, exclusão e renomeação—dándote controle e conhecimento total sobre o que acontece.

Principais Casos de Uso

Linceu Lighthouse oferece a visibilidade necessária para diversos cenários práticos:

  • Auditoría de Actividades em Carpetas: Ideal para entornos onde múltiplos usuários ou processos acessan os mesmos diretórios. Conoce exactamente cuándo se modificó un archivo, quién lo renombró o por qué se eliminó un documento.
  • Control de Versiones y Proyectos: Monitorea carpetas de proyectos para entender el flujo de trabajo. Visualiza el historial de cambios en códigos fuente, documentos de diseño u otros materiales, ayudando a evitar pérdidas acidentales o cambios no autorizados.
  • Organización y Limpieza de Archivos: Identifica archivos temporales, duplicados o que no se han modificado durante mucho tiempo. Utiliza los informes para tomar decisiones informadas sobre qué archivar, mover o eliminar, manteniendo tus directorios organizados.
  • Investigación de Eventos Específicos: Si un archivo importante desaparece o un proyecto deja de funcionar, Linceu Lighthouse proporciona el historial cronológico de eventos para ayudarte a rastrear la causa raíz del problema.

¿Cómo Funciona Linceu Lighthouse?

El proceso es directo y se centra en proporcionar dados claros para tu análisis:

  1. Establecimiento de la Línea Base (Baseline): Al iniciar el monitoreo de un directorio, Linceu Lighthouse realiza un escaneamento completo para crear una "instantánea" inicial del estado de todos los archivos y carpetas.
  2. Monitoreo Continuo: A partir de la línea base, la herramienta monitorea en tiempo real y registra cada evento de creación, modificación, eliminación, movimiento o renombrado que ocurre en el directorio.
  3. Análisis e Informe: Cualquier desviación de la línea base se lista inmediatamente en la interfaz gráfica. Desde allí, tienes total poder para analizar lo que sucedió, utilizando las herramientas que ofrece el software.

Herramientas de Análisis a Tu Disposición

Para transformar el gran volumen de datos de monitoreo en información útil, Linceu Lighthouse ofrece:

  • Filtros Avanzados: No te pierdas entre miles de eventos. Aísla rápidamente lo que importa, filtrando por tipo de operação (ej: ver solo archivos eliminados), por fecha, por extensión (.docx, .jpg), o por usuario.
  • Visualización de Estadísticas: Transforma datos brutos en conocimientos visuales. Com gráficos intuitivos, você pode entender padrões de atividade, como os horários de pico de modificações, os tipos de arquivos mais alterados, e muito mais.
  • Exportación Flexible de Datos: Crea un registro permanente y auditável. Exporte os logs de monitoramento para diversos formatos (Excel, CSV, JSON, XML), já seja para arquivamento, para compartilhar com sua equipe, ou para importar em outros sistemas.

MANUAL DE USO RÁPIDO:

Cómo usar:

  1. Ejecuta la aplicación para iniciar la interfaz gráfica.
  2. Selecciona un directorio para monitorear.
  3. Utiliza los botones y menús para iniciar/detener el monitoreo, aplicar filtros, exportar datos y visualizar estadísticas.

MANUAL DE USO DETALLADO:

Requisitos del Sistema: - Sistema Operativo: Windows 10 o superior.

Instalación: - Instala el archivo ejecutable del programa, sigue las instrucciones del instalador y ejecuta el programa.

Configuración Inicial: - La interfaz se mostrará con la tabla de monitoreo vacía. - El idioma predeterminado se seleccionará según la configuración del sistema. - Observa la barra lateral izquierda para acceder a las funciones principales.

Monitoreo de Directorios: 1. Seleccionar un Directorio: - Haz clic en el botón "Seleccionar Directorio" o selecciona "Archivo → Seleccionar Directorio" - La ruta del directorio seleccionado se mostrará encima de la tabla

2. Iniciar/Detener Monitoreo:
   - Haz clic en el botón "Iniciar/Detener" o selecciona "Archivo → Iniciar/Detener"
   - Se realizará un escaneado inicial del directorio con barra de progresso
   - Para interrumpir el monitoreo, haz clic nuevamente en el mismo botón

Interfaz Principal: - Barra de Menú: Acceso a todas as funções do programa - Barra Lateral: Botões de ações rápidas - Etiqueta de Directorio: Muestra el directorio monitorizado - Etiqueta de Resultado: Muestra el estado atual da operação - Tabla de Datos: Muestra todos los eventos de monitoreo - Barra de Progreso: Visível durante operações de longa duração

Campos predeterminados de la tabla:
- Tipo de Operación: Adicionado, Excluído, Modificado, Renomeado o Movido
- Nombre: Nombre del archivo
- Directorio Anterior: Ubicación original del archivo (cuando aplica)
- Directorio Actual: Ubicación actual del archivo
- Fecha de Creación: Fecha en que se creó el archivo
- Fecha de Modificación: Fecha de la última modificación
- Tipo: Tipo/extensión del archivo

Filtros y Búsqueda: 1. Filtros Rápidos: - En el menú "Configuración → Filtros", marca/desmarca tipos de operações (Movido, Renomeado, Adicionado, Excluído, Modificado)

2. Filtros Avanzados:
   - Accede a "Configuración → Filtros → Filtros Avanzados"
   - Filtro de Operación: Selecciona tipos de operações a visualizar
   - Búsqueda: Busca por texto em nome e diretórios
   - Filtro por Extensión: Filtra por tipos específicos de arquivo
   - Filtro de Fecha: Define el período para los eventos
   - Usa el botón de calendario para selección de fechas
   - "Limpiar Filtros" restablece todas las configuraciones

Visualización de Estadísticas: - Accede mediante el botón "Estadísticas" o "Archivo → Estadísticas" - Gráficos disponibles: * Distribución de Operaciones: Proporción de cada tipo de operación * Top 10 Tipos de Archivo: Tipos de archivo más comunes * Línea de Tiempo de Operaciones: Línea temporal de eventos * Mapa de Árbol: Visualización de tamaño por tipos * Distribución por Hora: Horarios con más operaciones * Análisis de Pareto: Frecuencia y porcentaje acumulado * Operaciones por Día: Operaciones agrupadas por fecha - Guardar gráficos: Haz clic en "Guardar Todos" y selecciona destino

Exportación de Datos: - Haz clic en "Guardar Como" o "Archivo → Guardar Como" - Formatos disponibles: * Excel (.xlsx) * CSV (.csv) * Texto (.txt) * JSON (.json) * XML (.xml) * Base de Datos (.db) - Para exportaciones futuras del mismo conjunto, usa "Archivo → Guardar"

Configuración de Columnas: - Accede a "Configuración → Configurar Columnas" - Marca/desmarca columnas deseadas en la tabla: (Tipo de Operación, Nombre, Directorio Anterior, Directorio Actual, etc.) - Los cambios se aplican inmediatamente - Restauración predeterminada: "Configuración → Configurar Columnas → Restablecer Columnas"

Cambio de Idioma: - Accede a "Opciones → Idioma" y selecciona el idioma deseado - El programa se reiniciará con el nuevo idioma después de la confirmación

Resolución de Problemas: 1. El monitoreo no inicia: - Verifica los permisos de acceso al directorio - Asegúrate de que no hay otro programa monitoreando el mismo directorio - Reinicia la aplicación

2. Los eventos no aparecen:
    - Verifica si el monitoreo está activo
    - Comprueba si los filtros no están ocultando eventos
    - Prueba modificando un archivo manualmente

3. Alto consumo de recursos:
    - Evita monitorear directorios del sistema o con miles de archivos
    - Monitorea subdirectorios específicos en lugar de directorios raíz

4. Errores en las estadísticas:
    - Asegúrate de que hay suficientes eventos para generar gráficos
    - Verifica si todas las bibliotecas están correctamente instaladas

📋 Documentación Técnica

Visión General del Sistema

Linceu Lighthouse es una aplicación de escritorio desarrollada en Python/PySide6 para monitoreo en tiempo real de operaciones en sistemas de archivos (creación, modificación, eliminación, renombrado, movimiento). Ofrece análisis estadístico avanzado, visualización de datos y exportación en múltiples formatos.

Tecnologías Principales

  • Framework GUI: PySide6 (Qt6)
  • Análisis de Datos: pandas, numpy
  • Visualización: matplotlib, seaborn, plotly
  • Base de Datos: SQLite3 (con optimizaciones WAL)
  • Multithreading: QThread, concurrent.futures
  • Internacionalización: Qt Linguist (6 idiomas)

📁 Estructura de Directorios y Módulos

📂 source/gui/ - Capa de Interfaz Gráfica

Módulos Principales

  • ic_01_InterfaceMonitor.py - Ventana principal de la aplicación
  • ic_02_Inicializador.py - Inicialización de componentes GUI
  • ic_03_Configurador.py - Configuración de diseños y widgets
  • ic_04_Atualizador.py - Actualización de interfaz
  • ic_05_GerenciadorProgresso.py - Barras de progreso
  • ic_06_GerenciadorMensagens.py - Sistema de notificaciones
  • ic_07_ManipuladorTabela.py - Operaciones en tablas
  • ic_08_Internacionalizador.py - Sistema de traducciones
  • ic_09_GerenciadorDesempenho.py - Gráficos de CPU/RAM/Disco
  • ic_10_EstruturaDiretoriosWidget.py - Visualización en árbol

📁 GerenciadorDesempenho/ (16 módulos)

Responsable del monitoreo de rendimiento del sistema en tiempo real.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 módulos)

Gestiona la visualización en árbol y operaciones de archivos/carpetas.

📂 source/services/ - Capa de Lógica de Negocio

Módulos Principales

  • ob_01_Observador.py - Monitoreo vía ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Clase base para eventos
  • ob_03_DiretorioScanner.py - Escaneo recursivo inicial
  • ob_04_EventoAdicionado.py - Procesamiento de creaciones
  • ob_05_EventoExcluido.py - Procesamiento de eliminaciones
  • ob_06_EventoModificado.py - Detección de modificaciones
  • ob_07_EventoRenomeado.py - Detección de renombrados
  • ob_08_EventoMovido.py - Detección de movimientos
  • ob_09_GerenciadorColunas.py - Configuración de columnas visibles
  • ob_10_GerenciadorTabela.py - Operaciones en tablas de datos

Subdirectorios Especializados

  • GerenciamentoBaseEvento/ (20 módulos) - Gestión de eventos y base de datos
  • GerenciamentoDiretorioScanner/ (9 módulos) - Escaneo de directorios
  • GerenciamentoEventoModificado/ (7 módulos) - Procesamiento de modificaciones
  • GerenciamentoEventoMovido/ (9 módulos) - Detección de movimientos
  • GerenciamentoMetadados/ (47 módulos) - Extracción especializada de metadatos
  • GerenciamentoObservador/ (13 módulos) - Control del observador
  • GerenciamentoTabela/ (47 módulos) - Operaciones avanzadas de tabla
📂 source/ui/ - Componentes de Interfaz Avanzados

Módulos Principales

  • ui_01_GerenciadorBotoes.py - Botones de acción
  • ui_02_GerenciadorBotoesUI.py - Factory de botones
  • ui_03_GerenciadorMenusUI.py - Barra de menús
  • ui_04_GerenciadorEventosUI.py - Manejadores de eventos
  • ui_05_GerenciadorProgressoUI.py - Retroalimentación de progreso
  • ui_06_GerenciadorEstatisticasUI.py - Ventana de estadísticas
  • ui_07_GerenciadorDados.py - Guardar/Cargar
  • ui_11_DialogoCores.py - Selector de colores personalizado
  • ui_12_LocalizadorQt.py - Sistema de traducciones
  • ui_13_TradutorMetadadosQt.py - Traducción de metadatos

Subdirectorios

  • GerenciamentoBotoes/ (6 módulos)
  • GerenciamentoDialogoCores/ (8 módulos)
  • GerenciamentoEstatisticasUI/ (31 módulos)
  • GerenciamentoEventosUI/ (11 módulos)
  • GerenciamentoLocalizadorQt/ (14 módulos)
  • GerenciamentoMenusUI/ (23 módulos)
  • GerenciamentoTradutorMetadadosQt/ (9 módulos)
📂 source/data/ - Generación de Estadísticas y Gráficos

18 Tipos de Gráficos Disponibles

  • Pizza - Distribución de operaciones
  • Barras - Top 30 tipos de archivo
  • Línea de tiempo - Línea temporal
  • Treemap - Mapa de árbol
  • Histograma - Distribución por hora
  • Pareto - Análisis 80/20
  • Línea - Evolución temporal
  • Boxplot - Distribución de tamaños
  • Radar - Eventos por hora/día
  • Heatmap - Mapa de calor temporal
  • Scatter - Análisis tamaño vs tiempo
  • Sankey (3 variaciones) - Flujo de operaciones
  • Dotplot - Distribución de tamaños
  • Árbol - Estructura de directorios
📂 source/tools/ - Herramientas y Utilitarios de UI

Módulos de Filtros

  • fil_01_Filtros.py - Ventana de filtros avanzados
  • fil_02_AdministradorCalendario.py - Selector de fechas
  • fil_03_AdministradorFiltros.py - Lógica de filtrado

Subdirectorios

  • GerenciamentoAdministradorFiltros/ (10 módulos)
  • GerenciamentoFiltros/ (10 módulos)
📂 source/utils/ - Utilitarios Transversales
  • LogManager.py - Sistema centralizado de logs con rotación automática
  • IconUtils.py - Gestión de iconos y recursos visuales
  • CaminhoPersistenteUtils.py - Rutas de configuración multiplataforma
  • ApplicationPathUtils.py - Rutas de la aplicación y recursos
📂 source/locale/ - Internacionalización

Archivos de Traducción

  • linceu_pt_BR.ts - Português (Brasil) - 600+ cadenas
  • linceu_en_US.ts - English (United States)
  • linceu_es_ES.ts - Español (España)
  • linceu_fr_FR.ts - Français (France)
  • linceu_it_IT.ts - Italiano (Italia)
  • linceu_de_DE.ts - Deutsch (Deutschland)

Herramientas

  • compile_translations.py - Script de compilación y validación de traducciones

🏗️ Arquitectura y Patrones de Diseño

Principios SOLID Aplicados

  • [S] Single Responsibility: Cada módulo tiene una responsabilidad única
  • [O] Open/Closed: Extensible vía herencia (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: Todos los generadores de gráfico son intercambiables
  • [I] Interface Segregation: Interfaces específicas por tipo de evento
  • [D] Dependency Inversion: Inyección de dependencias (loc, interface, db_path)

Patrones de Diseño Implementados

  • Observer Pattern: Monitoreo de archivos
  • Factory Pattern: Creación de botones y componentes
  • Strategy Pattern: Diferentes estrategias de exportación
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador define esqueleto
  • Facade Pattern: GerenciadorEstatisticasUI simplifica acceso

Multithreading y Rendimiento

  • QThread para operaciones largas (escaneo, gráficos)
  • ThreadPoolExecutor para procesamiento paralelo
  • DatabaseWriter con hilo dedicado
  • Debouncing inteligente para eventos
  • Caché con invalidación selectiva
  • Batch processing para inserciones

Optimizaciones de Base de Datos

  • SQLite con modo WAL (Write-Ahead Logging)
  • Índices en columnas frecuentes
  • Transacciones en lote
  • Optimizaciones PRAGMA
  • Hilo dedicado para I/O

🔄 Flujo de Ejecución Principal

1. INICIALIZACIÓN
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. SELECCIÓN DE DIRECTORIO
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. INICIO DEL MONITOREO
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. PROCESAMIENTO DE EVENTOS
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. ACTUALIZACIÓN DE LA INTERFAZ
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. GENERACIÓN DE ESTADÍSTICAS
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. EXPORTACIÓN DE DATOS
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. CAMBIO DE IDIOMA
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Requisitos y Dependencias

Bibliotecas Principales

PySide6>=6.5.0           # Framework Qt6
pandas>=2.0.0            # Análisis de datos
matplotlib>=3.7.0        # Visualización de gráficos
seaborn>=0.12.0          # Gráficos estadísticos
plotly==5.22.0           # Gráficos interactivos
Pillow>=10.0.0           # Procesamiento de imágenes
tinytag>=1.10.0          # Metadatos de audio
pymediainfo>=6.0.0       # Metadatos de video
PyPDF2>=3.0.0            # Metadatos de PDF
openpyxl>=3.1.0          # Lectura/escritura Excel
python-docx>=0.8.11      # Metadatos de DOCX
chardet>=5.1.0           # Detección de codificación
squarify>=0.4.3          # Gráficos treemap
psutil>=5.9.0            # Monitoreo de sistema
pywin32>=305             # API Windows

Requisitos de Sistema

  • Sistema Operativo: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4GB mínimo (8GB recomendado)
  • Disco: 100MB espacio disponible

✨ Funcionalidades Principales

Monitoreo en Tiempo Real
  • ✓ Detección de creación de archivos/carpetas
  • ✓ Detección de eliminación de archivos/carpetas
  • ✓ Detección de modificación de contenido
  • ✓ Detección de renombrado
  • ✓ Detección de movimiento entre carpetas
  • ✓ Distinción entre operaciones de archivo vs directorio
  • ✓ Debouncing inteligente para archivos grandes
  • ✓ Soporte a operaciones masivas (batch)
Extracción de Metadatos (47 módulos especializados)
  • Código fuente: líneas, clases, funciones, imports
  • Imágenes: dimensiones, EXIF, formato, DPI
  • Audio: duración, bitrate, artista, álbum
  • Video: codec, resolución, tasa de frames, duración
  • Documentos: páginas, palabras, autor, fecha creación
  • Hojas de cálculo: número de hojas, líneas, columnas
  • Presentaciones: número de diapositivas
  • Comprimidos: archivos contenidos, tamaño descomprimido
  • Bases de datos: tablas, registros
  • Ejecutables: versión, firma digital, arquitectura
  • Logs: primera/última entrada, número de líneas
  • Configuraciones: formato detectado
Visualización de Datos (18 tipos de gráficos)
  • ✓ Pizza: Distribución de operaciones
  • ✓ Barras: Top tipos de archivo
  • ✓ Línea de tiempo: Línea temporal de eventos
  • ✓ Treemap: Jerarquía de tipos
  • ✓ Histograma: Distribución por hora
  • ✓ Pareto: Análisis 80/20
  • ✓ Línea: Evolución temporal diaria
  • ✓ Boxplot: Distribución de tamaños
  • ✓ Radar: Eventos por hora/día/tipo
  • ✓ Heatmap: Mapa de calor temporal
  • ✓ Scatter: Tamaño vs tiempo
  • ✓ Sankey: Flujo de operaciones/tipos/rutas
  • ✓ Dotplot: Distribución de tamaños
  • ✓ Árbol: Estructura de directorios
Filtros Avanzados
  • ✓ Por tipo de operación
  • ✓ Por tipo de archivo (extensión)
  • ✓ Por intervalo de fechas
  • ✓ Por nombre/texto contenido
  • ✓ Combinación de múltiples filtros
  • ✓ Tasa de filtrado en tiempo real
  • ✓ Sincronización con menú principal
Exportación de Datos
  • ✓ Excel (.xlsx) - con formato
  • ✓ CSV (.csv) - delimitado por coma
  • ✓ JSON (.json) - estructurado
  • ✓ XML (.xml) - jerárquico
  • ✓ SQLite (.db) - base de datos completa
  • ✓ Texto (.txt) - simple
  • ✓ Opciones: solo visibles, filtros activos, selección
Internacionalización
  • ✓ 6 idiomas soportados
  • ✓ Traducción completa de interfaz
  • ✓ Traducción de metadatos
  • ✓ Traducción de tipos de operación
  • ✓ Cambio en tiempo real (sin reinicio)
  • ✓ Persistencia de preferencia
  • ✓ Fallback para inglés

🎯 Buenas Prácticas Implementadas

Código Limpio (Clean Code)

  • ✓ Nombres descriptivos y autoexplicativos
  • ✓ Funciones pequeñas y enfocadas (< 50 líneas)
  • ✓ Evitar números mágicos (usar constantes)
  • ✓ Documentación en el código (docstrings)
  • ✓ Formato consistente
  • ✓ Evitar duplicación de código (DRY)

Rendimiento

  • ✓ Lazy loading de metadatos
  • ✓ Caché de resultados frecuentes
  • ✓ Procesamiento asíncrono
  • ✓ Batch processing
  • ✓ Índices optimizados en la base
  • ✓ Uso eficiente de memoria

Mantenibilidad

  • ✓ Modularización extrema (200+ módulos)
  • ✓ Separación de responsabilidades
  • ✓ Bajo acoplamiento
  • ✓ Alta cohesión
  • ✓ Patrones de nomenclatura consistentes

🚀 Para Añadir Nuevas Funcionalidades

  • Nuevo tipo de gráfico: Heredar de data/GeradorEstatisticas/gst_01_base_gerador.py
  • Nuevo tipo de evento: Heredar de services/ob_02_BaseEvento.py
  • Nueva columna: Añadir getter en services/ob_09_GerenciadorColunas.py
  • Nuevo idioma: Crear linceu_XX.ts en source/locale/
  • Nuevo filtro: Añadir en tools/GerenciamentoAdministradorFiltros/

📝 Notas Importantes

Versiones Específicas de Bibliotecas

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

Archivos Críticos

  • monitoramento.db - Base de datos principal (SQLite)
  • language_config.json - Preferencia de idioma
  • colunas_coloridas.json - Configuración de colores
  • cores_operacoes.json - Colores por tipo de operación
  • config.json - Configuraciones generales

Logs

Sistema de logs con rotación automática en:

%APPDATA%/Linceu_Lighthouse/logs/

📄 Licencia y Autoría

Autores: Fernando Nillsson Cidade
Versión: v0.1.3.0
Licencia: GNU Affero General Public License v3.0 (AGPL-3.0)

Para más información, consulte la documentación específica de cada módulo en el código fuente.



🇫🇷 Français (FR)

Note : Ce référentiel fait référence à la version v0.1.3.0 du projet Linceu Lighthouse. Soutenez le projet et achetez la version payante via le lien : Installer via Microsoft Store

Cliquez pour développer le README en français

Linceu Lighthouse - Français Linceu Lighthouse - Français Linceu Lighthouse - Français Linceu Lighthouse - Français Linceu Lighthouse - Français Linceu Lighthouse - Français

Projet : LINCEU LIGHTHOUSE
Version : v0.1.3.0
Auteurs : Fernando Nillsson Cidade

Description : Visibilité et Contrôle sur Vos Fichiers

Linceu Lighthouse est un outil de surveillance qui applique les principes de Surveillance de l'Intégrité des Fichiers (File Integrity Monitoring - FIM) pour fournir un journal détaillé et transparent de toutes les activités dans vos répertoires les plus importants.

Au lieu d'interpréter l'intention derrière un changement, son objectif est d'enregistrer factuellement chaque opération—création, modification, suppression et renommage—vous donnant un contrôle et une connaissance totale de ce qui se passe.

Principaux Cas d'Usage

Linceu Lighthouse fournit la visibilité nécessaire pour divers scénarios pratiques :

  • Audit des Activités dans les Dossiers : Idéal pour les environnements où plusieurs utilisateurs ou processus accèdent aux mêmes répertoires. Sachez exactement quand un fichier a été modifié, qui l'a renommé ou pourquoi un document a été supprimé.
  • Contrôle des Versions et des Projets : Surveillez les dossiers de projets pour comprendre le flux de travail. Consultez l'historique des modifications dans le code source, les documents de conception ou d'autres matériaux, aidant à prévenir les pertes accidentelles ou les modifications non autorisées.
  • Organisation et Nettoyage des Fichiers : Identifiez les fichiers temporaires, en double ou qui n'ont pas été modifiés depuis longtemps. Utilisez les rapports pour prendre des décisions éclairées sur ce qu'il faut archiver, déplacer ou supprimer, gardant vos répertoires organisés.
  • Enquête sur des Événements Spécifiques : Si un fichier important disparaît ou qu'un projet cesse de fonctionner, Linceu Lighthouse fournit l'historique chronologique des événements pour vous aider à retracer la cause première du problème.

Comment Fonctionne Linceu Lighthouse ?

Le processus est simple et axé sur la fourniture de données claires pour votre analyse :

  1. Établissement de la Ligne de Base (Baseline) : Lors du démarrage de la surveillance d'un répertoire, Linceu Lighthouse effectue une analyse complète pour créer un "instantané" initial de l'état de tous les fichiers et dossiers.
  2. Surveillance Continue : À partir de la ligne de base, l'outil surveille en temps réel et enregistre chaque événement de création, modification, suppression, déplacement ou renommage qui se produit dans le répertoire.
  3. Analyse et Rapport : Tout écart par rapport à la ligne de base est immédiatement répertorié dans l'interface graphique. De là, vous avez le plein pouvoir d'analyser ce qui s'est passé, en utilisant les outils que le logiciel offre.

Outils d'Analyse à Votre Disposition

Pour transformer le grand volume de données de surveillance en informations utiles, Linceu Lighthouse offre :

  • Filtres Avancés : Ne vous perdez pas parmi des milliers d'événements. Isolez rapidement ce qui compte en filtrant par type d'opération (ex : voir uniquement les fichiers supprimés), par date, par extension (.docx, .jpg), ou par utilisateur.
  • Visualisation des Statistiques : Transformez les données brutes en informations visuelles. Avec des graphiques intuitifs, vous pouvez comprendre les modèles d'activité, tels que les heures de pointe des modifications, les types de fichiers les plus modifiés, et bien plus encore.
  • Exportation Flexible des Données : Créez un enregistrement permanent et vérifiable. Exportez les journaux de surveillance vers divers formats (Excel, CSV, JSON, XML), que ce soit pour l'archivage, le partage avec votre équipe ou l'importation dans d'autres systèmes.

MANUEL D'UTILISATION RAPIDE :

Comment utiliser :

  1. Exécutez l'application pour démarrer l'interface graphique.
  2. Sélectionnez un répertoire à surveiller.
  3. Utilisez les boutons et menus pour démarrer/arrêter la surveillance, appliquer des filtres, exporter des données et visualiser des statistiques.

MANUEL D'UTILISATION DÉTAILLÉ :

Configuration Système Requise : - Système d'Exploitation : Windows 10 ou supérieur.

Installation : - Installez le fichier exécutable du programme, suivez les instructions de l'installateur et exécutez le programme.

Configuration Initiale : - L'interface s'affichera avec le tableau de surveillance vide. - La langue par défaut sera sélectionnée selon les paramètres du système. - Observez la barre latérale gauche pour accéder aux fonctions principales.

Surveillance des Répertoires : 1. Sélectionner un Répertoire : - Cliquez sur le bouton "Sélectionner un Répertoire" ou sélectionnez "Fichier → Sélectionner un Répertoire" - Le chemin du répertoire sélectionné sera affiché au-dessus du tableau

2. Démarrer/Arrêter la Surveillance :
   - Cliquez sur le bouton "Démarrer/Arrêter" ou sélectionnez "Fichier → Démarrer/Arrêter"
   - Une analyse initiale du répertoire sera effectuée avec une barre de progression
   - Pour arrêter la surveillance, cliquez à nouveau sur le même bouton

Interface Principale : - Barre de Menu : Accès à toutes les fonctions du programme - Barre Latérale : Boutons d'actions rapides - Étiquette de Répertoire : Affiche le répertoire surveillé - Étiquette de Résultat : Affiche l'état actuel de l'opération - Tableau de Données : Affiche tous les événements de surveillance - Barre de Progression : Visible pendant les opérations de longue durée

Champs par défaut du tableau :
- Type d'Opération : Ajouté, Supprimé, Modifié, Renommé ou Déplacé
- Nom : Nom du fichier
- Répertoire Précédent : Emplacement d'origine du fichier (le cas échéant)
- Répertoire Actuel : Emplacement actuel du fichier
- Date de Création : Date à laquelle le fichier a été créé
- Date de Modification : Date de la dernière modification
- Type : Type/extension du fichier

Filtres et Recherche : 1. Filtres Rapides : - Dans le menu "Paramètres → Filtres", cochez/décochez les types d'opérations (Déplacé, Renommé, Ajouté, Supprimé, Modifié)

2. Filtres Avancés :
   - Accédez à "Paramètres → Filtres → Filtres Avancés"
   - Filtre d'Opération : Sélectionnez les types d'opérations à visualiser
   - Recherche : Recherche de texte dans les noms et répertoires
   - Filtre par Extension : Filtrez par types de fichiers spécifiques
   - Filtre de Date : Définissez la période pour les événements
   - Utilisez le bouton calendrier pour la sélection des dates
   - "Effacer les Filtres" réinitialise tous les paramètres

Visualisation des Statistiques : - Accédez via le bouton "Statistiques" ou "Fichier → Statistiques" - Graphiques disponibles : * Distribution des Opérations : Proportion de chaque type d'opération * Top 10 des Types de Fichiers : Types de fichiers les plus courants * Chronologie des Opérations : Ligne de temps des événements * Carte Arborescente : Visualisation de la taille par types * Distribution par Heure : Heures avec le plus d'opérations * Analyse de Pareto : Fréquence et pourcentage cumulé * Opérations par Jour : Opérations regroupées par date - Enregistrer les graphiques : Cliquez sur "Tout Enregistrer" et sélectionnez la destination

Exportation des Données : - Cliquez sur "Enregistrer Sous" ou "Fichier → Enregistrer Sous" - Formats disponibles : * Excel (.xlsx) * CSV (.csv) * Texte (.txt) * JSON (.json) * XML (.xml) * Base de Données (.db) - Pour les exportations futures du même ensemble, utilisez "Fichier → Enregistrer"

Configuration des Colonnes : - Accédez à "Paramètres → Configurer les Colonnes" - Cochez/décochez les colonnes souhaitées dans le tableau : (Type d'Opération, Nom, Répertoire Précédent, Répertoire Actuel, etc.) - Les modifications sont appliquées immédiatement - Restauration par défaut : "Paramètres → Configurer les Colonnes → Réinitialiser les Colonnes"

Changement de Langue : - Accédez à "Options → Langue" et sélectionnez la langue souhaitée - Le programme redémarrera avec la nouvelle langue après confirmation

Résolution de Problèmes : 1. La surveillance ne démarre pas : - Vérifiez les autorisations d'accès au répertoire - Assurez-vous qu'aucun autre programme ne surveille le même répertoire - Redémarrez l'application

2. Les événements n'apparaissent pas :
    - Vérifiez si la surveillance est active
    - Vérifiez si les filtres ne cachent pas les événements
    - Testez en modifiant manuellement un fichier

3. Consommation élevée de ressources :
    - Évitez de surveiller les répertoires système ou ceux contenant des milliers de fichiers
    - Surveillez des sous-répertoires spécifiques au lieu des répertoires racine

4. Erreurs dans les statistiques :
    - Assurez-vous qu'il y a suffisamment d'événements pour générer des graphiques
    - Vérifiez si toutes les bibliothèques sont correctement installées

📋 Documentation Technique

Vue d'Ensemble du Système

Linceu Lighthouse est une application de bureau développée en Python/PySide6 pour la surveillance en temps réel des opérations sur les systèmes de fichiers (création, modification, suppression, renommage, déplacement). Elle offre une analyse statistique avancée, la visualisation des données et l'exportation dans plusieurs formats.

Technologies Principales

  • Framework GUI: PySide6 (Qt6)
  • Analyse de Données: pandas, numpy
  • Visualisation: matplotlib, seaborn, plotly
  • Base de Données: SQLite3 (avec optimisations WAL)
  • Multithreading: QThread, concurrent.futures
  • Internationalisation: Qt Linguist (6 langues)

📁 Structure des Répertoires et Modules

📂 source/gui/ - Couche d'Interface Graphique

Modules Principaux

  • ic_01_InterfaceMonitor.py - Fenêtre principale de l'application
  • ic_02_Inicializador.py - Initialisation des composants GUI
  • ic_03_Configurador.py - Configuration des mises en page et widgets
  • ic_04_Atualizador.py - Mise à jour de l'interface
  • ic_05_GerenciadorProgresso.py - Barres de progression
  • ic_06_GerenciadorMensagens.py - Système de notifications
  • ic_07_ManipuladorTabela.py - Opérations sur les tableaux
  • ic_08_Internacionalizador.py - Système de traductions
  • ic_09_GerenciadorDesempenho.py - Graphiques CPU/RAM/Disque
  • ic_10_EstruturaDiretoriosWidget.py - Visualisation en arborescence

📁 GerenciadorDesempenho/ (16 modules)

Responsable de la surveillance des performances du système en temps réel.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 modules)

Gère la visualisation en arborescence et les opérations de fichiers/dossiers.

📂 source/services/ - Couche de Logique Métier

Modules Principaux

  • ob_01_Observador.py - Surveillance via ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Classe de base pour les événements
  • ob_03_DiretorioScanner.py - Analyse récursive initiale
  • ob_04_EventoAdicionado.py - Traitement des créations
  • ob_05_EventoExcluido.py - Traitement des suppressions
  • ob_06_EventoModificado.py - Détection des modifications
  • ob_07_EventoRenomeado.py - Détection des renommages
  • ob_08_EventoMovido.py - Détection des déplacements
  • ob_09_GerenciadorColunas.py - Configuration des colonnes visibles
  • ob_10_GerenciadorTabela.py - Opérations sur les tableaux de données

Sous-répertoires Spécialisés

  • GerenciamentoBaseEvento/ (20 modules) - Gestion des événements et base de données
  • GerenciamentoDiretorioScanner/ (9 modules) - Analyse des répertoires
  • GerenciamentoEventoModificado/ (7 modules) - Traitement des modifications
  • GerenciamentoEventoMovido/ (9 modules) - Détection des déplacements
  • GerenciamentoMetadados/ (47 modules) - Extraction spécialisée de métadonnées
  • GerenciamentoObservador/ (13 modules) - Contrôle de l'observateur
  • GerenciamentoTabela/ (47 modules) - Opérations avancées sur les tableaux
📂 source/ui/ - Composants d'Interface Avancés

Modules Principaux

  • ui_01_GerenciadorBotoes.py - Boutons d'action
  • ui_02_GerenciadorBotoesUI.py - Factory de boutons
  • ui_03_GerenciadorMenusUI.py - Barre de menus
  • ui_04_GerenciadorEventosUI.py - Gestionnaires d'événements
  • ui_05_GerenciadorProgressoUI.py - Retour de progression
  • ui_06_GerenciadorEstatisticasUI.py - Fenêtre de statistiques
  • ui_07_GerenciadorDados.py - Sauvegarder/Charger
  • ui_11_DialogoCores.py - Sélecteur de couleurs personnalisé
  • ui_12_LocalizadorQt.py - Système de traductions
  • ui_13_TradutorMetadadosQt.py - Traduction des métadonnées

Sous-répertoires

  • GerenciamentoBotoes/ (6 modules)
  • GerenciamentoDialogoCores/ (8 modules)
  • GerenciamentoEstatisticasUI/ (31 modules)
  • GerenciamentoEventosUI/ (11 modules)
  • GerenciamentoLocalizadorQt/ (14 modules)
  • GerenciamentoMenusUI/ (23 modules)
  • GerenciamentoTradutorMetadadosQt/ (9 modules)
📂 source/data/ - Génération de Statistiques et Graphiques

18 Types de Graphiques Disponibles

  • Camembert - Distribution des opérations
  • Barres - Top 30 types de fichiers
  • Chronologie - Ligne du temps
  • Treemap - Carte arborescente
  • Histogramme - Distribution par heure
  • Pareto - Analyse 80/20
  • Ligne - Évolution temporelle
  • Boxplot - Distribution des tailles
  • Radar - Événements par heure/jour
  • Heatmap - Carte de chaleur temporelle
  • Scatter - Analyse taille vs temps
  • Sankey (3 variations) - Flux d'opérations
  • Dotplot - Distribution des tailles
  • Arbre - Structure des répertoires
📂 source/tools/ - Outils et Utilitaires d'Interface

Modules de Filtres

  • fil_01_Filtros.py - Fenêtre de filtres avancés
  • fil_02_AdministradorCalendario.py - Sélecteur de dates
  • fil_03_AdministradorFiltros.py - Logique de filtrage

Sous-répertoires

  • GerenciamentoAdministradorFiltros/ (10 modules)
  • GerenciamentoFiltros/ (10 modules)
📂 source/utils/ - Utilitaires Transversaux
  • LogManager.py - Système centralisé de journalisation avec rotation automatique
  • IconUtils.py - Gestion des icônes et ressources visuelles
  • CaminhoPersistenteUtils.py - Chemins de configuration multiplateforme
  • ApplicationPathUtils.py - Chemins de l'application et ressources
📂 source/locale/ - Internationalisation

Fichiers de Traduction

  • linceu_pt_BR.ts - Português (Brasil) - 600+ chaînes
  • linceu_en_US.ts - English (United States)
  • linceu_es_ES.ts - Español (España)
  • linceu_fr_FR.ts - Français (France)
  • linceu_it_IT.ts - Italiano (Italia)
  • linceu_de_DE.ts - Deutsch (Deutschland)

Outils

  • compile_translations.py - Script de compilation et validation des traductions

🏗️ Architecture et Modèles de Conception

Principes SOLID Appliqués

  • [S] Single Responsibility: Chaque module a une responsabilité unique
  • [O] Open/Closed: Extensible via héritage (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: Tous les générateurs de graphiques sont interchangeables
  • [I] Interface Segregation: Interfaces spécifiques par type d'événement
  • [D] Dependency Inversion: Injection de dépendances (loc, interface, db_path)

Modèles de Conception Implémentés

  • Observer Pattern: Surveillance des fichiers
  • Factory Pattern: Création de boutons et composants
  • Strategy Pattern: Différentes stratégies d'exportation
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador définit le squelette
  • Facade Pattern: GerenciadorEstatisticasUI simplifie l'accès

Multithreading et Performance

  • QThread pour les opérations longues (analyse, graphiques)
  • ThreadPoolExecutor pour le traitement parallèle
  • DatabaseWriter avec thread dédié
  • Debouncing intelligent pour les événements
  • Cache avec invalidation sélective
  • Traitement par lots pour les insertions

Optimisations de Base de Données

  • SQLite avec mode WAL (Write-Ahead Logging)
  • Index sur les colonnes fréquentes
  • Transactions par lots
  • Optimisations PRAGMA
  • Thread dédié pour I/O

🔄 Flux d'Exécution Principal

1. INITIALISATION
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. SÉLECTION DE RÉPERTOIRE
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. DÉMARRAGE DE LA SURVEILLANCE
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. TRAITEMENT DES ÉVÉNEMENTS
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. MISE À JOUR DE L'INTERFACE
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. GÉNÉRATION DE STATISTIQUES
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. EXPORTATION DE DONNÉES
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. CHANGEMENT DE LANGUE
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Exigences et Dépendances

Bibliothèques Principales

PySide6>=6.5.0           # Framework Qt6
pandas>=2.0.0            # Analyse de données
matplotlib>=3.7.0        # Visualisation de graphiques
seaborn>=0.12.0          # Graphiques statistiques
plotly==5.22.0           # Graphiques interactifs
Pillow>=10.0.0           # Traitement d'images
tinytag>=1.10.0          # Métadonnées audio
pymediainfo>=6.0.0       # Métadonnées vidéo
PyPDF2>=3.0.0            # Métadonnées PDF
openpyxl>=3.1.0          # Lecture/écriture Excel
python-docx>=0.8.11      # Métadonnées DOCX
chardet>=5.1.0           # Détection d'encodage
squarify>=0.4.3          # Graphiques treemap
psutil>=5.9.0            # Surveillance système
pywin32>=305             # API Windows

Configuration Système Requise

  • Système d'Exploitation: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4GB minimum (8GB recommandé)
  • Disque: 100MB d'espace disponible

✨ Fonctionnalités Principales

Surveillance en Temps Réel
  • ✓ Détection de création de fichiers/dossiers
  • ✓ Détection de suppression de fichiers/dossiers
  • ✓ Détection de modification de contenu
  • ✓ Détection de renommage
  • ✓ Détection de déplacement entre dossiers
  • ✓ Distinction entre opérations de fichier vs répertoire
  • ✓ Debouncing intelligent pour les fichiers volumineux
  • ✓ Support des opérations massives (batch)
Extraction de Métadonnées (47 modules spécialisés)
  • Code source: lignes, classes, fonctions, imports
  • Images: dimensions, EXIF, format, DPI
  • Audio: durée, bitrate, artiste, album
  • Vidéo: codec, résolution, taux de trames, durée
  • Documents: pages, mots, auteur, date de création
  • Feuilles de calcul: nombre de feuilles, lignes, colonnes
  • Présentations: nombre de diapositives
  • Compressés: fichiers contenus, taille décompressée
  • Bases de données: tables, enregistrements
  • Exécutables: version, signature numérique, architecture
  • Journaux: première/dernière entrée, nombre de lignes
  • Configurations: format détecté
Visualisation de Données (18 types de graphiques)
  • ✓ Camembert: Distribution des opérations
  • ✓ Barres: Top types de fichiers
  • ✓ Chronologie: Ligne du temps des événements
  • ✓ Treemap: Hiérarchie des types
  • ✓ Histogramme: Distribution par heure
  • ✓ Pareto: Analyse 80/20
  • ✓ Ligne: Évolution temporelle quotidienne
  • ✓ Boxplot: Distribution des tailles
  • ✓ Radar: Événements par heure/jour/type
  • ✓ Heatmap: Carte de chaleur temporelle
  • ✓ Scatter: Taille vs temps
  • ✓ Sankey: Flux d'opérations/types/chemins
  • ✓ Dotplot: Distribution des tailles
  • ✓ Arbre: Structure des répertoires
Filtres Avancés
  • ✓ Par type d'opération
  • ✓ Par type de fichier (extension)
  • ✓ Par intervalle de dates
  • ✓ Par nom/texte contenu
  • ✓ Combinaison de plusieurs filtres
  • ✓ Taux de filtrage en temps réel
  • ✓ Synchronisation avec le menu principal
Exportation de Données
  • ✓ Excel (.xlsx) - avec formatage
  • ✓ CSV (.csv) - délimité par virgules
  • ✓ JSON (.json) - structuré
  • ✓ XML (.xml) - hiérarchique
  • ✓ SQLite (.db) - base de données complète
  • ✓ Texte (.txt) - simple
  • ✓ Options: visibles uniquement, filtres actifs, sélection
Internationalisation
  • ✓ 6 langues supportées
  • ✓ Traduction complète de l'interface
  • ✓ Traduction des métadonnées
  • ✓ Traduction des types d'opération
  • ✓ Changement en temps réel (sans redémarrage)
  • ✓ Persistance des préférences
  • ✓ Fallback vers l'anglais

🎯 Bonnes Pratiques Implémentées

Code Propre (Clean Code)

  • ✓ Noms descriptifs et auto-explicatifs
  • ✓ Fonctions petites et ciblées (< 50 lignes)
  • ✓ Éviter les nombres magiques (utiliser des constantes)
  • ✓ Documentation dans le code (docstrings)
  • ✓ Formatage cohérent
  • ✓ Éviter la duplication de code (DRY)

Performance

  • ✓ Lazy loading des métadonnées
  • ✓ Cache des résultats fréquents
  • ✓ Traitement asynchrone
  • ✓ Traitement par lots
  • ✓ Index optimisés dans la base
  • ✓ Utilisation efficace de la mémoire

Maintenabilité

  • ✓ Modularisation extrême (200+ modules)
  • ✓ Séparation des responsabilités
  • ✓ Faible couplage
  • ✓ Haute cohésion
  • ✓ Modèles de nomenclature cohérents

🚀 Pour Ajouter de Nouvelles Fonctionnalités

  • Nouveau type de graphique: Hériter de data/GeradorEstatisticas/gst_01_base_gerador.py
  • Nouveau type d'événement: Hériter de services/ob_02_BaseEvento.py
  • Nouvelle colonne: Ajouter un getter dans services/ob_09_GerenciadorColunas.py
  • Nouvelle langue: Créer linceu_XX.ts dans source/locale/
  • Nouveau filtre: Ajouter dans tools/GerenciamentoAdministradorFiltros/

📝 Notes Importantes

Versions Spécifiques de Bibliothèques

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

Fichiers Critiques

  • monitoramento.db - Base de données principale (SQLite)
  • language_config.json - Préférence de langue
  • colunas_coloridas.json - Configuration des couleurs
  • cores_operacoes.json - Couleurs par type d'opération
  • config.json - Paramètres généraux

Journaux

Système de journalisation avec rotation automatique dans:

%APPDATA%/Linceu_Lighthouse/logs/

📄 Licence et Paternité

Auteurs: Fernando Nillsson Cidade
Version: v0.1.3.0
Licence: GNU Affero General Public License v3.0 (AGPL-3.0)

Pour plus d'informations, consultez la documentation spécifique de chaque module dans le code source.



🇮🇹 Italiano (IT)

Nota: Questo repository si riferisce alla versione v0.1.3.0 del Progetto Linceu Lighthouse. Supporta il progetto e acquista la versione a pagamento tramite il link: Installa via Microsoft Store

Clicca per espandere il README in italiano

Linceu Lighthouse - Italiano Linceu Lighthouse - Italiano Linceu Lighthouse - Italiano Linceu Lighthouse - Italiano Linceu Lighthouse - Italiano Linceu Lighthouse - Italiano

Progetto: LINCEU LIGHTHOUSE
Versione: v0.1.3.0
Autori: Fernando Nillsson Cidade

Descrizione: Visibilità e Controllo sui Tuoi File

Linceu Lighthouse è uno strumento di monitoraggio che applica i principi del Monitoraggio dell'Integrità dei File (File Integrity Monitoring - FIM) per fornire un registro dettagliato e trasparente di tutte le attività nelle tue directory più importanti.

Invece di interpretare l'intenzione dietro un cambiamento, il suo obiettivo è registrare in modo fattuale ogni operazione—creazione, modifica, eliminazione e rinominazione—dandoti controllo e conoscenza totale di ciò che accade.

Principali Casi d'Uso

Linceu Lighthouse fornisce la visibilità necessaria per vari scenari pratici:

  • Audit delle Attività nelle Cartelle: Ideale per ambienti in cui più utenti o processi accedono alle stesse directory. Scopri esattamente quando un file è stato modificato, chi lo ha rinominato o perché un documento è stato eliminato.
  • Controllo di Versioni e Progetti: Monitora le cartelle dei progetti per comprendere il flusso di lavoro. Visualizza la cronologia delle modifiche nel codice sorgente, nei documenti di progettazione o in altri materiali, aiutando a prevenire perdite accidentali o modifiche non autorizzate.
  • Organizzazione e Pulizia dei File: Identifica file temporanei, duplicati o che non sono stati modificati da molto tempo. Usa i report per prendere decisioni informate su cosa archiviare, spostare o eliminare, mantenendo le tue directory organizzate.
  • Indagine su Eventi Specifici: Se un file importante scompare o un progetto smette di funzionare, Linceu Lighthouse fornisce la cronologia cronologica degli eventi per aiutarti a rintracciare la causa principale del problema.

Come Funziona Linceu Lighthouse?

Il processo è semplice e focalizzato sulla fornitura di dati chiari per la tua analisi:

  1. Stabilimento della Linea di Base (Baseline): All'avvio del monitoraggio di una directory, Linceu Lighthouse esegue una scansione completa per creare un'"istantanea" iniziale dello stato di tutti i file e cartelle.
  2. Monitoraggio Continuo: A partire dalla linea di base, lo strumento monitora in tempo reale e registra ogni evento di creazione, modifica, eliminazione, spostamento o rinominazione che si verifica nella directory.
  3. Analisi e Report: Qualsiasi deviazione dalla linea di base viene immediatamente elencata nell'interfaccia grafica. Da lì, hai il pieno potere di analizzare cosa è successo, utilizzando gli strumenti che il software offre.

Strumenti di Analisi a Tua Disposizione

Per trasformare il grande volume di dati di monitoraggio in informazioni utili, Linceu Lighthouse offre:

  • Filtri Avanzati: Non perderti tra migliaia di eventi. Isola rapidamente ciò che conta, filtrando per tipo di operazione (es: visualizzare solo i file eliminati), per data, per estensione (.docx, .jpg), o per utente.
  • Visualizzazione delle Statistiche: Trasforma i dati grezzi in intuizioni visive. Con grafici intuitivi, puoi comprendere i modelli di attività, come gli orari di punta delle modifiche, i tipi di file più modificati e molto altro.
  • Esportazione Flessibile dei Dati: Crea un registro permanente e verificabile. Esporta i log di monitoraggio in vari formati (Excel, CSV, JSON, XML), sia per l'archiviazione, per condividere con il tuo team, o per importare in altri sistemi.

MANUALE D'USO RAPIDO:

Come usare:

  1. Esegui l'applicazione per avviare l'interfaccia grafica.
  2. Seleziona una directory da monitorare.
  3. Usa i pulsanti e i menu per avviare/fermare il monitoraggio, applicare filtri, esportare dati e visualizzare statistiche.

MANUALE D'USO DETTAGLIATO:

Requisiti di Sistema: - Sistema Operativo: Windows 10 o superiore.

Installazione: - Installa il file eseguibile del programma, segui le istruzioni dell'installatore ed esegui il programma.

Configurazione Iniziale: - L'interfaccia verrà visualizzata con la tabella di monitoraggio vuota. - La lingua predefinita verrà selezionata in base alle impostazioni del sistema. - Osserva la barra laterale sinistra per accedere alle funzioni principali.

Monitoraggio delle Directory: 1. Selezionare una Directory: - Fai clic sul pulsante "Seleziona Directory" o seleziona "File → Seleziona Directory" - Il percorso della directory selezionata verrà visualizzato sopra la tabella

2. Avviare/Fermare il Monitoraggio:
   - Fai clic sul pulsante "Avvia/Ferma" o seleziona "File → Avvia/Ferma"
   - Verrà eseguita una scansione iniziale della directory con barra di avanzamento
   - Per interrompere il monitoraggio, fai clic di nuovo sullo stesso pulsante

Interfaccia Principale: - Barra dei Menu: Accesso a tutte le funzioni del programma - Barra Laterale: Pulsanti di azioni rapide - Etichetta Directory: Visualizza la directory monitorata - Etichetta Risultato: Mostra lo stato attuale dell'operazione - Tabella Dati: Visualizza tutti gli eventi di monitoraggio - Barra di Avanzamento: Visibile durante operazioni di lunga durata

Campi predefiniti della tabella:
- Tipo di Operazione: Aggiunto, Eliminato, Modificato, Rinominato o Spostato
- Nome: Nome del file
- Directory Precedente: Posizione originale del file (se applicabile)
- Directory Attuale: Posizione attuale del file
- Data di Creazione: Data in cui il file è stato creato
- Data di Modifica: Data dell'ultima modifica
- Tipo: Tipo/estensione del file

Filtri e Ricerca: 1. Filtri Rapidi: - Nel menu "Impostazioni → Filtri" attiva/disattiva i tipi di operazioni (Spostato, Rinominato, Aggiunto, Eliminato, Modificato)

2. Filtri Avanzati:
   - Accedi a "Impostazioni → Filtri → Filtri Avanzati"
   - Filtro Operazione: Seleziona i tipi di operazioni da visualizzare
   - Ricerca: Cerca testo in nomi e directory
   - Filtro per Estensione: Filtra per tipi di file specifici
   - Filtro Data: Definisci il periodo per gli eventi
   - Usa il pulsante calendario per la selezione delle date
   - "Cancella Filtri" ripristina tutte le impostazioni

Visualizzazione delle Statistiche: - Accedi tramite il pulsante "Statistiche" o "File → Statistiche" - Grafici disponibili: * Distribuzione delle Operazioni: Proporzione di ogni tipo di operazione * Top 10 Tipi di File: Tipi di file più comuni * Linea Temporale delle Operazioni: Timeline degli eventi * Mappa ad Albero: Visualizzazione della dimensione per tipi * Distribuzione per Ora: Orari con più operazioni * Analisi di Pareto: Frequenza e percentuale cumulativa * Operazioni per Giorno: Operazioni raggruppate per data - Salvare grafici: Fai clic su "Salva Tutto" e seleziona la destinazione

Esportazione dei Dati: - Fai clic su "Salva Come" o "File → Salva Come" - Formati disponibili: * Excel (.xlsx) * CSV (.csv) * Testo (.txt) * JSON (.json) * XML (.xml) * Database (.db) - Per esportazioni future dello stesso set, usa "File → Salva"

Configurazione delle Colonne: - Accedi a "Impostazioni → Configura Colonne" - Attiva/disattiva le colonne desiderate nella tabella: (Tipo di Operazione, Nome, Directory Precedente, Directory Attuale, ecc.) - Le modifiche vengono applicate immediatamente - Ripristino predefinito: "Impostazioni → Configura Colonne → Ripristina Colonne"

Cambio Lingua: - Accedi a "Opzioni → Lingua" e seleziona la lingua desiderata - Il programma verrà riavviato con la nuova lingua dopo la conferma

Risoluzione dei Problemi: 1. Il monitoraggio non si avvia: - Verifica i permessi di accesso alla directory - Assicurati che non ci sia un altro programma che monitora la stessa directory - Riavvia l'applicazione

2. Gli eventi non appaiono:
    - Verifica se il monitoraggio è attivo
    - Controlla se i filtri non stanno nascondendo gli eventi
    - Prova modificando manualmente un file

3. Alto consumo di risorse:
    - Evita di monitorare directory di sistema o con migliaia di file
    - Monitora sottodirectory specifiche invece delle directory radice

4. Errori nelle statistiche:
    - Assicurati che ci siano abbastanza eventi per generare grafici
    - Verifica se tutte le librerie sono correttamente installate

📋 Documentazione Tecnica

Panoramica del Sistema

Linceu Lighthouse è un'applicazione desktop sviluppata in Python/PySide6 per il monitoraggio in tempo reale delle operazioni sui file system (creazione, modifica, eliminazione, rinominazione, spostamento). Offre analisi statistiche avanzate, visualizzazione dei dati ed esportazione in molteplici formati.

Tecnologie Principali

  • Framework GUI: PySide6 (Qt6)
  • Analisi Dati: pandas, numpy
  • Visualizzazione: matplotlib, seaborn, plotly
  • Database: SQLite3 (con ottimizzazioni WAL)
  • Multithreading: QThread, concurrent.futures
  • Internazionalizzazione: Qt Linguist (6 lingue)

📁 Struttura delle Directory e dei Moduli

📂 source/gui/ - Livello Interfaccia Grafica

Moduli Principali

  • ic_01_InterfaceMonitor.py - Finestra principale dell'applicazione
  • ic_02_Inicializador.py - Inizializzazione componenti GUI
  • ic_03_Configurador.py - Configurazione layout e widget
  • ic_04_Atualizador.py - Aggiornamento interfaccia
  • ic_05_GerenciadorProgresso.py - Barre di avanzamento
  • ic_06_GerenciadorMensagens.py - Sistema di notifiche
  • ic_07_ManipuladorTabela.py - Operazioni su tabelle
  • ic_08_Internacionalizador.py - Sistema di traduzioni
  • ic_09_GerenciadorDesempenho.py - Grafici CPU/RAM/Disco
  • ic_10_EstruturaDiretoriosWidget.py - Visualizzazione ad albero

📁 GerenciadorDesempenho/ (16 moduli)

Responsabile del monitoraggio delle prestazioni del sistema in tempo reale.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 moduli)

Gestisce la visualizzazione ad albero e le operazioni su file/cartelle.

📂 source/services/ - Livello Logica di Business

Moduli Principali

  • ob_01_Observador.py - Monitoraggio via ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Classe base per eventi
  • ob_03_DiretorioScanner.py - Scansione ricorsiva iniziale
  • ob_04_EventoAdicionado.py - Elaborazione creazioni
  • ob_05_EventoExcluido.py - Elaborazione eliminazioni
  • ob_06_EventoModificado.py - Rilevamento modifiche
  • ob_07_EventoRenomeado.py - Rilevamento rinominazioni
  • ob_08_EventoMovido.py - Rilevamento spostamenti
  • ob_09_GerenciadorColunas.py - Configurazione colonne visibili
  • ob_10_GerenciadorTabela.py - Operazioni su tabelle dati

Sottodirectory Specializzate

  • GerenciamentoBaseEvento/ (20 moduli) - Gestione eventi e database
  • GerenciamentoDiretorioScanner/ (9 moduli) - Scansione directory
  • GerenciamentoEventoModificado/ (7 moduli) - Elaborazione modifiche
  • GerenciamentoEventoMovido/ (9 moduli) - Rilevamento spostamenti
  • GerenciamentoMetadados/ (47 moduli) - Estrazione specializzata metadati
  • GerenciamentoObservador/ (13 moduli) - Controllo osservatore
  • GerenciamentoTabela/ (47 moduli) - Operazioni avanzate su tabelle
📂 source/ui/ - Componenti Interfaccia Avanzati

Moduli Principali

  • ui_01_GerenciadorBotoes.py - Pulsanti azione
  • ui_02_GerenciadorBotoesUI.py - Factory pulsanti
  • ui_03_GerenciadorMenusUI.py - Barra menu
  • ui_04_GerenciadorEventosUI.py - Gestori eventi
  • ui_05_GerenciadorProgressoUI.py - Feedback avanzamento
  • ui_06_GerenciadorEstatisticasUI.py - Finestra statistiche
  • ui_07_GerenciadorDados.py - Salva/Carica
  • ui_11_DialogoCores.py - Selettore colori personalizzato
  • ui_12_LocalizadorQt.py - Sistema traduzioni
  • ui_13_TradutorMetadadosQt.py - Traduzione metadati

Sottodirectory

  • GerenciamentoBotoes/ (6 moduli)
  • GerenciamentoDialogoCores/ (8 moduli)
  • GerenciamentoEstatisticasUI/ (31 moduli)
  • GerenciamentoEventosUI/ (11 moduli)
  • GerenciamentoLocalizadorQt/ (14 moduli)
  • GerenciamentoMenusUI/ (23 moduli)
  • GerenciamentoTradutorMetadadosQt/ (9 moduli)
📂 source/data/ - Generazione Statistiche e Grafici

18 Tipi di Grafici Disponibili

  • Torta - Distribuzione operazioni
  • Barre - Top 30 tipi di file
  • Timeline - Linea temporale
  • Treemap - Mappa ad albero
  • Istogramma - Distribuzione per ora
  • Pareto - Analisi 80/20
  • Linea - Evoluzione temporale
  • Boxplot - Distribuzione dimensioni
  • Radar - Eventi per ora/giorno
  • Heatmap - Mappa di calore temporale
  • Scatter - Analisi dimensione vs tempo
  • Sankey (3 variazioni) - Flusso operazioni
  • Dotplot - Distribuzione dimensioni
  • Albero - Struttura directory
📂 source/tools/ - Strumenti e Utilità UI

Moduli Filtri

  • fil_01_Filtros.py - Finestra filtri avanzati
  • fil_02_AdministradorCalendario.py - Selettore date
  • fil_03_AdministradorFiltros.py - Logica filtraggio

Sottodirectory

  • GerenciamentoAdministradorFiltros/ (10 moduli)
  • GerenciamentoFiltros/ (10 moduli)
📂 source/utils/ - Utilità Trasversali
  • LogManager.py - Sistema centralizzato log con rotazione automatica
  • IconUtils.py - Gestione icone e risorse visive
  • CaminhoPersistenteUtils.py - Percorsi configurazione multipiattaforma
  • ApplicationPathUtils.py - Percorsi applicazione e risorse
📂 source/locale/ - Internazionalizzazione

File di Traduzione

  • linceu_pt_BR.ts - Português (Brasil) - 600+ stringhe
  • linceu_en_US.ts - English (United States)
  • linceu_es_ES.ts - Español (España)
  • linceu_fr_FR.ts - Français (France)
  • linceu_it_IT.ts - Italiano (Italia)
  • linceu_de_DE.ts - Deutsch (Deutschland)

Strumenti

  • compile_translations.py - Script compilazione e validazione traduzioni

🏗️ Architettura e Pattern di Design

Principi SOLID Applicati

  • [S] Single Responsibility: Ogni modulo ha una responsabilità unica
  • [O] Open/Closed: Estensibile via ereditarietà (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: Tutti i generatori di grafici sono intercambiabili
  • [I] Interface Segregation: Interfacce specifiche per tipo di evento
  • [D] Dependency Inversion: Iniezione dipendenze (loc, interface, db_path)

Pattern di Design Implementati

  • Observer Pattern: Monitoraggio file
  • Factory Pattern: Creazione pulsanti e componenti
  • Strategy Pattern: Diverse strategie esportazione
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador definisce scheletro
  • Facade Pattern: GerenciadorEstatisticasUI semplifica accesso

Multithreading e Prestazioni

  • QThread per operazioni lunghe (scansione, grafici)
  • ThreadPoolExecutor per elaborazione parallela
  • DatabaseWriter con thread dedicato
  • Debouncing intelligente per eventi
  • Cache con invalidazione selettiva
  • Batch processing per inserimenti

Ottimizzazioni Database

  • SQLite con modalità WAL (Write-Ahead Logging)
  • Indici su colonne frequenti
  • Transazioni in batch
  • Ottimizzazioni PRAGMA
  • Thread dedicato per I/O

🔄 Flusso di Esecuzione Principale

1. INIZIALIZZAZIONE
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. SELEZIONE DIRECTORY
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. AVVIO MONITORAGGIO
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. ELABORAZIONE EVENTI
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. AGGIORNAMENTO INTERFACCIA
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. GENERAZIONE STATISTICHE
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. ESPORTAZIONE DATI
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. CAMBIO LINGUA
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Requisiti e Dipendenze

Librerie Principali

PySide6>=6.5.0           # Framework Qt6
pandas>=2.0.0            # Analisi dati
matplotlib>=3.7.0        # Visualizzazione grafici
seaborn>=0.12.0          # Grafici statistici
plotly==5.22.0           # Grafici interattivi
Pillow>=10.0.0           # Elaborazione immagini
tinytag>=1.10.0          # Metadati audio
pymediainfo>=6.0.0       # Metadati video
PyPDF2>=3.0.0            # Metadati PDF
openpyxl>=3.1.0          # Lettura/scrittura Excel
python-docx>=0.8.11      # Metadati DOCX
chardet>=5.1.0           # Rilevamento codifica
squarify>=0.4.3          # Grafici treemap
psutil>=5.9.0            # Monitoraggio sistema
pywin32>=305             # API Windows

Requisiti di Sistema

  • Sistema Operativo: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4GB minimo (8GB consigliato)
  • Disco: 100MB spazio disponibile

✨ Funzionalità Principali

Monitoraggio in Tempo Reale
  • ✓ Rilevamento creazione file/cartelle
  • ✓ Rilevamento eliminazione file/cartelle
  • ✓ Rilevamento modifica contenuto
  • ✓ Rilevamento rinominazione
  • ✓ Rilevamento spostamento tra cartelle
  • ✓ Distinzione tra operazioni file vs directory
  • ✓ Debouncing intelligente per file grandi
  • ✓ Supporto operazioni massive (batch)
Estrazione Metadati (47 moduli specializzati)
  • Codice sorgente: righe, classi, funzioni, import
  • Immagini: dimensioni, EXIF, formato, DPI
  • Audio: durata, bitrate, artista, album
  • Video: codec, risoluzione, frame rate, durata
  • Documenti: pagine, parole, autore, data creazione
  • Fogli di calcolo: numero fogli, righe, colonne
  • Presentazioni: numero diapositive
  • Compressi: file contenuti, dimensione decompressa
  • Database: tabelle, record
  • Eseguibili: versione, firma digitale, architettura
  • Log: prima/ultima voce, numero righe
  • Configurazioni: formato rilevato
Visualizzazione Dati (18 tipi di grafici)
  • ✓ Torta: Distribuzione operazioni
  • ✓ Barre: Top tipi file
  • ✓ Timeline: Linea temporale eventi
  • ✓ Treemap: Gerarchia tipi
  • ✓ Istogramma: Distribuzione per ora
  • ✓ Pareto: Analisi 80/20
  • ✓ Linea: Evoluzione temporale giornaliera
  • ✓ Boxplot: Distribuzione dimensioni
  • ✓ Radar: Eventi per ora/giorno/tipo
  • ✓ Heatmap: Mappa calore temporale
  • ✓ Scatter: Dimensione vs tempo
  • ✓ Sankey: Flusso operazioni/tipi/percorsi
  • ✓ Dotplot: Distribuzione dimensioni
  • ✓ Albero: Struttura directory
Filtri Avanzati
  • ✓ Per tipo operazione
  • ✓ Per tipo file (estensione)
  • ✓ Per intervallo date
  • ✓ Per nome/testo contenuto
  • ✓ Combinazione filtri multipli
  • ✓ Tasso filtraggio tempo reale
  • ✓ Sincronizzazione con menu principale
Esportazione Dati
  • ✓ Excel (.xlsx) - con formattazione
  • ✓ CSV (.csv) - delimitato da virgola
  • ✓ JSON (.json) - strutturato
  • ✓ XML (.xml) - gerarchico
  • ✓ SQLite (.db) - database completo
  • ✓ Testo (.txt) - semplice
  • ✓ Opzioni: solo visibili, filtri attivi, selezione
Internazionalizzazione
  • ✓ 6 lingue supportate
  • ✓ Traduzione completa interfaccia
  • ✓ Traduzione metadati
  • ✓ Traduzione tipi operazione
  • ✓ Cambio in tempo reale (senza riavvio)
  • ✓ Persistenza preferenza
  • ✓ Fallback inglese

🎯 Best Practice Implementate

Codice Pulito (Clean Code)

  • ✓ Nomi descrittivi e autoesplicativi
  • ✓ Funzioni piccole e focalizzate (< 50 righe)
  • ✓ Evitare numeri magici (usare costanti)
  • ✓ Documentazione nel codice (docstring)
  • ✓ Formattazione consistente
  • ✓ Evitare duplicazione codice (DRY)

Prestazioni

  • ✓ Lazy loading metadati
  • ✓ Cache risultati frequenti
  • ✓ Elaborazione asincrona
  • ✓ Batch processing
  • ✓ Indici ottimizzati nel database
  • ✓ Uso efficiente memoria

Manutenibilità

  • ✓ Modularizzazione estrema (200+ moduli)
  • ✓ Separazione responsabilità
  • ✓ Basso accoppiamento
  • ✓ Alta coesione
  • ✓ Pattern nomenclatura consistenti

🚀 Per Aggiungere Nuove Funzionalità

  • Nuovo tipo grafico: Ereditare da data/GeradorEstatisticas/gst_01_base_gerador.py
  • Nuovo tipo evento: Ereditare da services/ob_02_BaseEvento.py
  • Nuova colonna: Aggiungere getter in services/ob_09_GerenciadorColunas.py
  • Nuova lingua: Creare linceu_XX.ts in source/locale/
  • Nuovo filtro: Aggiungere in tools/GerenciamentoAdministradorFiltros/

📝 Note Importanti

Versioni Specifiche Librerie

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

File Critici

  • monitoramento.db - Database principale (SQLite)
  • language_config.json - Preferenza lingua
  • colunas_coloridas.json - Configurazione colori
  • cores_operacoes.json - Colori per tipo operazione
  • config.json - Impostazioni generali

Log

Sistema log con rotazione automatica in:

%APPDATA%/Linceu_Lighthouse/logs/

📄 Licenza e Paternità

Autori: Fernando Nillsson Cidade
Versione: v0.1.3.0
Licenza: GNU Affero General Public License v3.0 (AGPL-3.0)

Per maggiori informazioni, consultare la documentazione specifica di ogni modulo nel codice sorgente.



🇩🇪 Deutsch (DE)

Hinweis: Dieses Repository bezieht sich auf die Version v0.1.3.0 des Linceu Lighthouse Projekts. Unterstützen Sie das Projekt und erwerben Sie die kostenpflichtige Version über den Link: Über Microsoft Store installieren

Klicken Sie hier, um die README auf Deutsch zu erweitern

Linceu Lighthouse - Deutsch Linceu Lighthouse - Deutsch Linceu Lighthouse - Deutsch Linceu Lighthouse - Deutsch Linceu Lighthouse - Deutsch Linceu Lighthouse - Deutsch

Projekt: LINCEU LIGHTHOUSE
Version: v0.1.3.0
Autoren: Fernando Nillsson Cidade

Beschreibung: Sichtbarkeit und Kontrolle über Ihre Dateien

Linceu Lighthouse ist ein Überwachungstool, das die Prinzipien der Dateiintegritätsüberwachung (File Integrity Monitoring - FIM) anwendet, um ein detailliertes und transparentes Protokoll aller Aktivitäten in Ihren wichtigsten Verzeichnissen bereitzustellen.

Anstatt die Absicht hinter einer Änderung zu interpretieren, konzentriert es sich darauf, jede Operation faktisch zu erfassen—Erstellung, Änderung, Löschung und Umbenennung—und gibt Ihnen vollständige Kontrolle und Kenntnis darüber, was geschieht.

Hauptanwendungsfälle

Linceu Lighthouse bietet die notwendige Sichtbarkeit für verschiedene praktische Szenarien:

  • Prüfung von Ordneraktivitäten: Ideal für Umgebungen, in denen mehrere Benutzer oder Prozesse auf dieselben Verzeichnisse zugreifen. Erfahren Sie genau, wann eine Datei geändert wurde, wer sie umbenannt hat oder warum ein Dokument gelöscht wurde.
  • Versions- und Projektkontrolle: Überwachen Sie Projektordner, um den Arbeitsablauf zu verstehen. Sehen Sie die Historie der Änderungen im Quellcode, in Designdokumenten oder anderen Materialien und helfen Sie, versehentliche Verluste oder unbefugte Änderungen zu verhindern.
  • Dateiorganisation und -bereinigung: Identifizieren Sie temporäre, doppelte oder lange nicht geänderte Dateien. Nutzen Sie die Berichte, um fundierte Entscheidungen darüber zu treffen, was archiviert, verschoben oder gelöscht werden soll, und halten Sie Ihre Verzeichnisse organisiert.
  • Untersuchung spezifischer Ereignisse: Wenn eine wichtige Datei verschwindet oder ein Projekt nicht mehr funktioniert, bietet Linceu Lighthouse die chronologische Ereignisgeschichte, um Ihnen zu helfen, die Grundursache des Problems zu verfolgen.

Wie Funktioniert Linceu Lighthouse?

Der Prozess ist unkompliziert und konzentriert sich darauf, klare Daten für Ihre Analyse bereitzustellen:

  1. Festlegung der Basislinie (Baseline): Beim Start der Überwachung eines Verzeichnisses führt Linceu Lighthouse einen vollständigen Scan durch, um eine anfängliche "Momentaufnahme" des Zustands aller Dateien und Ordner zu erstellen.
  2. Kontinuierliche Überwachung: Von der Basislinie aus überwacht das Tool in Echtzeit und zeichnet jedes Ereignis der Erstellung, Änderung, Löschung, Verschiebung oder Umbenennung auf, das im Verzeichnis auftritt.
  3. Analyse und Bericht: Jede Abweichung von der Basislinie wird sofort in der grafischen Oberfläche aufgelistet. Von dort aus haben Sie die volle Macht, zu analysieren, was passiert ist, und die vom Software angebotenen Tools zu nutzen.

Analysetools zu Ihrer Verfügung

Um das große Volumen an Überwachungsdaten in nützliche Informationen zu verwandeln, bietet Linceu Lighthouse:

  • Erweiterte Filter: Verlieren Sie sich nicht in Tausenden von Ereignissen. Isolieren Sie schnell, was wichtig ist, indem Sie nach Operationstyp (z. B. nur gelöschte Dateien anzeigen), nach Datum, nach Erweiterung (.docx, .jpg) oder nach Benutzer filtern.
  • Statistikvisualisierung: Verwandeln Sie Rohdaten in visuelle Einblicke. Mit intuitiven Diagrammen können Sie Aktivitätsmuster verstehen, wie z. B. Spitzenzeiten für Änderungen, die am häufigsten geänderten Dateitypen und vieles mehr.
  • Flexibler Datenexport: Erstellen Sie eine dauerhafte und prüfbare Aufzeichnung. Exportieren Sie Überwachungsprotokolle in verschiedene Formate (Excel, CSV, JSON, XML), sei es zur Archivierung, zum Teilen mit Ihrem Team oder zum Importieren in andere Systeme.

SCHNELLSTARTANLEITUNG:

So verwenden Sie:

  1. Führen Sie die Anwendung aus, um die grafische Oberfläche zu starten.
  2. Wählen Sie ein zu überwachendes Verzeichnis aus.
  3. Verwenden Sie die Schaltflächen und Menüs, um die Überwachung zu starten/stoppen, Filter anzuwenden, Daten zu exportieren und Statistiken anzuzeigen.

DETAILLIERTE BEDIENUNGSANLEITUNG:

Systemanforderungen: - Betriebssystem: Windows 10 oder höher.

Installation: - Installieren Sie die ausführbare Datei des Programms, folgen Sie den Anweisungen des Installationsprogramms und führen Sie das Programm aus.

Ersteinrichtung: - Die Oberfläche wird mit einer leeren Überwachungstabelle angezeigt. - Die Standardsprache wird entsprechend den Systemeinstellungen ausgewählt. - Beachten Sie die linke Seitenleiste, um auf die Hauptfunktionen zuzugreifen.

Verzeichnisüberwachung: 1. Verzeichnis Auswählen: - Klicken Sie auf die Schaltfläche "Verzeichnis Auswählen" oder wählen Sie "Datei → Verzeichnis Auswählen" - Der Pfad des ausgewählten Verzeichnisses wird über der Tabelle angezeigt

2. Überwachung Starten/Stoppen:
   - Klicken Sie auf die Schaltfläche "Starten/Stoppen" oder wählen Sie "Datei → Starten/Stoppen"
   - Ein anfänglicher Scan des Verzeichnisses wird mit Fortschrittsbalken durchgeführt
   - Um die Überwachung zu stoppen, klicken Sie erneut auf dieselbe Schaltfläche

Hauptoberfläche: - Menüleiste: Zugriff auf alle Programmfunktionen - Seitenleiste: Schaltflächen für schnelle Aktionen - Verzeichnisbezeichnung: Zeigt das überwachte Verzeichnis an - Ergebnisbezeichnung: Zeigt den aktuellen Status der Operation an - Datentabelle: Zeigt alle Überwachungsereignisse an - Fortschrittsbalken: Sichtbar während langwieriger Operationen

Standardfelder der Tabelle:
- Operationstyp: Hinzugefügt, Gelöscht, Geändert, Umbenannt oder Verschoben
- Name: Dateiname
- Vorheriges Verzeichnis: Ursprünglicher Speicherort der Datei (falls zutreffend)
- Aktuelles Verzeichnis: Aktueller Speicherort der Datei
- Erstellungsdatum: Datum, an dem die Datei erstellt wurde
- Änderungsdatum: Datum der letzten Änderung
- Typ: Dateityp/Erweiterung

Filter und Suche: 1. Schnellfilter: - Im Menü "Einstellungen → Filter" aktivieren/deaktivieren Sie Operationstypen (Verschoben, Umbenannt, Hinzugefügt, Gelöscht, Geändert)

2. Erweiterte Filter:
   - Zugriff über "Einstellungen → Filter → Erweiterte Filter"
   - Operationsfilter: Wählen Sie anzuzeigende Operationstypen aus
   - Suche: Suchen Sie nach Text in Namen und Verzeichnissen
   - Erweiterungsfilter: Filtern Sie nach bestimmten Dateitypen
   - Datumsfilter: Definieren Sie den Zeitraum für Ereignisse
   - Verwenden Sie die Kalenderschaltfläche zur Datumsauswahl
   - "Filter Löschen" setzt alle Einstellungen zurück

Statistikvisualisierung: - Zugriff über die Schaltfläche "Statistiken" oder "Datei → Statistiken" - Verfügbare Diagramme: * Operationsverteilung: Anteil jedes Operationstyps * Top 10 Dateitypen: Häufigste Dateitypen * Operations-Zeitleiste: Zeitleiste der Ereignisse * Baumkarte: Visualisierung der Größe nach Typen * Verteilung nach Stunde: Zeiten mit den meisten Operationen * Pareto-Analyse: Häufigkeit und kumulativer Prozentsatz * Operationen nach Tag: Nach Datum gruppierte Operationen - Diagramme speichern: Klicken Sie auf "Alle Speichern" und wählen Sie ein Ziel

Datenexport: - Klicken Sie auf "Speichern Unter" oder "Datei → Speichern Unter" - Verfügbare Formate: * Excel (.xlsx) * CSV (.csv) * Text (.txt) * JSON (.json) * XML (.xml) * Datenbank (.db) - Für zukünftige Exporte desselben Satzes verwenden Sie "Datei → Speichern"

Spaltenkonfiguration: - Zugriff über "Einstellungen → Spalten Konfigurieren" - Aktivieren/Deaktivieren Sie gewünschte Spalten in der Tabelle: (Operationstyp, Name, Vorheriges Verzeichnis, Aktuelles Verzeichnis, usw.) - Änderungen werden sofort angewendet - Standardwiederherstellung: "Einstellungen → Spalten Konfigurieren → Spalten Zurücksetzen"

Sprachwechsel: - Zugriff über "Optionen → Sprache" und wählen Sie die gewünschte Sprache - Das Programm wird nach Bestätigung mit der neuen Sprache neu gestartet

Fehlerbehebung: 1. Überwachung startet nicht: - Überprüfen Sie die Zugriffsberechtigungen für das Verzeichnis - Stellen Sie sicher, dass kein anderes Programm dasselbe Verzeichnis überwacht - Starten Sie die Anwendung neu

2. Ereignisse werden nicht angezeigt:
    - Überprüfen Sie, ob die Überwachung aktiv ist
    - Prüfen Sie, ob Filter keine Ereignisse verbergen
    - Testen Sie durch manuelles Ändern einer Datei

3. Hoher Ressourcenverbrauch:
    - Vermeiden Sie die Überwachung von Systemverzeichnissen oder solchen mit Tausenden von Dateien
    - Überwachen Sie spezifische Unterverzeichnisse anstelle von Stammverzeichnissen

4. Fehler in den Statistiken:
    - Stellen Sie sicher, dass genügend Ereignisse vorhanden sind, um Diagramme zu generieren
    - Überprüfen Sie, ob alle Bibliotheken korrekt installiert sind

📋 Technische Dokumentation

Systemübersicht

Linceu Lighthouse ist eine Desktop-Anwendung, die in Python/PySide6 entwickelt wurde und Datei­system-Operationen in Echtzeit überwacht (Erstellung, Änderung, Löschung, Umbenennung, Verschiebung). Sie bietet erweiterte statistische Analysen, Datenvisualisierung und Export in mehreren Formaten.

Haupttechnologien

  • GUI-Framework: PySide6 (Qt6)
  • Datenanalyse: pandas, numpy
  • Visualisierung: matplotlib, seaborn, plotly
  • Datenbank: SQLite3 (mit WAL-Optimierungen)
  • Multithreading: QThread, concurrent.futures
  • Internationalisierung: Qt Linguist (6 Sprachen)

📁 Verzeichnisstruktur und Module

📂 source/gui/ - Ebene der grafischen Benutzeroberfläche

Hauptmodule

  • ic_01_InterfaceMonitor.py - Hauptfenster der Anwendung
  • ic_02_Inicializador.py - Initialisierung von GUI-Komponenten
  • ic_03_Configurador.py - Konfiguration von Layouts und Widgets
  • ic_04_Atualizador.py - Aktualisierung der Oberfläche
  • ic_05_GerenciadorProgresso.py - Fortschrittsbalken
  • ic_06_GerenciadorMensagens.py - Benachrichtigungssystem
  • ic_07_ManipuladorTabela.py - Tabellenoperationen
  • ic_08_Internacionalizador.py - Übersetzungssystem
  • ic_09_GerenciadorDesempenho.py - CPU/RAM/Datenträger-Diagramme
  • ic_10_EstruturaDiretoriosWidget.py - Baumansicht

📁 GerenciadorDesempenho/ (16 Module)

Verantwortlich für die Echtzeit-Überwachung der Systemleistung.

📁 GerenciadorEstruturaDiretoriosWidget/ (16 Module)

Verwaltet die Baumansicht sowie Datei-/Ordneroperationen.

📂 source/services/ - Ebene der Geschäftslogik

Hauptmodule

  • ob_01_Observador.py - Überwachung via ReadDirectoryChangesW
  • ob_02_BaseEvento.py - Basisklasse für Events
  • ob_03_DiretorioScanner.py - Initialer rekursiver Scan
  • ob_04_EventoAdicionado.py - Verarbeitung von Erstellungen
  • ob_05_EventoExcluido.py - Verarbeitung von Löschungen
  • ob_06_EventoModificado.py - Erkennung von Änderungen
  • ob_07_EventoRenomeado.py - Erkennung von Umbenennungen
  • ob_08_EventoMovido.py - Erkennung von Verschiebungen
  • ob_09_GerenciadorColunas.py - Konfiguration sichtbarer Spalten
  • ob_10_GerenciadorTabela.py - Daten­tabellen­operationen

Spezialisierte Unterverzeichnisse

  • GerenciamentoBaseEvento/ (20 Module) - Event- und Datenbankverwaltung
  • GerenciamentoDiretorioScanner/ (9 Module) - Verzeichnisscan
  • GerenciamentoEventoModificado/ (7 Module) - Änderungsverarbeitung
  • GerenciamentoEventoMovido/ (9 Module) - Verschiebungs­erkennung
  • GerenciamentoMetadados/ (47 Module) - Spezialisierte Metadatenextraktion
  • GerenciamentoObservador/ (13 Module) - Beobachtersteuerung
  • GerenciamentoTabela/ (47 Module) - Erweiterte Tabellenoperationen
📂 source/ui/ - Erweiterte UI-Komponenten

Hauptmodule

  • ui_01_GerenciadorBotoes.py - Aktionsschaltflächen
  • ui_02_GerenciadorBotoesUI.py - Button-Factory
  • ui_03_GerenciadorMenusUI.py - Menüleiste
  • ui_04_GerenciadorEventosUI.py - Event-Handler
  • ui_05_GerenciadorProgressoUI.py - Fortschritts-Feedback
  • ui_06_GerenciadorEstatisticasUI.py - Statistikfenster
  • ui_07_GerenciadorDados.py - Speichern/Laden
  • ui_11_DialogoCores.py - Anpassbarer Farbwähler
  • ui_12_LocalizadorQt.py - Übersetzungssystem
  • ui_13_TradutorMetadadosQt.py - Metadatenübersetzung

Unterverzeichnisse

  • GerenciamentoBotoes/ (6 Module)
  • GerenciamentoDialogoCores/ (8 Module)
  • GerenciamentoEstatisticasUI/ (31 Module)
  • GerenciamentoEventosUI/ (11 Module)
  • GerenciamentoLocalizadorQt/ (14 Module)
  • GerenciamentoMenusUI/ (23 Module)
  • GerenciamentoTradutorMetadadosQt/ (9 Module)
📂 source/data/ - Erstellung von Statistiken und Diagrammen

18 verfügbare Diagrammtypen

  • Torte - Verteilung der Operationen
  • Balken - Top 30 Dateitypen
  • Zeitleiste - Zeitlinie
  • Treemap - Baumkarte
  • Histogramm - Verteilung nach Stunde
  • Pareto - 80/20-Analyse
  • Linie - Zeitliche Entwicklung
  • Boxplot - Größenverteilung
  • Radar - Ereignisse pro Stunde/Tag
  • Heatmap - Zeitliche Heatmap
  • Scatter - Größe vs. Zeit
  • Sankey (3 Varianten) - Fluss der Operationen
  • Dotplot - Größenverteilung
  • Baum - Verzeichnisstruktur
📂 source/tools/ - UI-Werkzeuge und Hilfsprogramme

Filter-Module

  • fil_01_Filtros.py - Fenster für erweiterte Filter
  • fil_02_AdministradorCalendario.py - Datumswähler
  • fil_03_AdministradorFiltros.py - Filterlogik

Unterverzeichnisse

  • GerenciamentoAdministradorFiltros/ (10 Module)
  • GerenciamentoFiltros/ (10 Module)
📂 source/utils/ - Querschnittliche Utilities
  • LogManager.py - Zentrales Logsystem mit automatischer Rotation
  • IconUtils.py - Verwaltung von Icons und visuellen Ressourcen
  • CaminhoPersistenteUtils.py - Plattformübergreifende Konfigurationspfade
  • ApplicationPathUtils.py - Pfade der Anwendung und Ressourcen
📂 source/locale/ - Internationalisierung

Übersetzungsdateien

  • linceu_pt_BR.ts - Portugiesisch (Brasilien) - 600+ Strings
  • linceu_en_US.ts - Englisch (USA)
  • linceu_es_ES.ts - Spanisch (Spanien)
  • linceu_fr_FR.ts - Französisch (Frankreich)
  • linceu_it_IT.ts - Italienisch (Italien)
  • linceu_de_DE.ts - Deutsch (Deutschland)

Werkzeuge

  • compile_translations.py - Skript zur Übersetzungs­kompilierung und -validierung

🏗️ Architektur und Entwurfsmuster

Angewandte SOLID-Prinzipien

  • [S] Single Responsibility: Jedes Modul hat eine eindeutige Verantwortung
  • [O] Open/Closed: Erweiterbar durch Vererbung (BaseGerador, BaseEvento)
  • [L] Liskov Substitution: Alle Diagramm-Generatoren sind austauschbar
  • [I] Interface Segregation: Spezifische Schnittstellen pro Eventtyp
  • [D] Dependency Inversion: Dependency Injection (loc, interface, db_path)

Implementierte Entwurfsmuster

  • Observer Pattern: Dateiüberwachung
  • Factory Pattern: Erstellung von Buttons und Komponenten
  • Strategy Pattern: Unterschiedliche Exportstrategien
  • Singleton Pattern: LogManager, DatabaseWriter
  • Model-View-Controller: EventTableModel + QTableView
  • Template Method: BaseGerador definiert das Gerüst
  • Facade Pattern: GerenciadorEstatisticasUI vereinfacht den Zugriff

Multithreading und Performance

  • QThread für langlaufende Operationen (Scan, Diagramme)
  • ThreadPoolExecutor für parallele Verarbeitung
  • DatabaseWriter mit dediziertem Thread
  • Intelligentes Debouncing für Events
  • Cache mit selektiver Invalidierung
  • Batch-Verarbeitung für Einfügungen

Datenbankoptimierungen

  • SQLite im WAL-Modus (Write-Ahead Logging)
  • Indizes auf häufigen Spalten
  • Batch-Transaktionen
  • PRAGMA-Optimierungen
  • Dedizierter Thread für I/O

🔄 Hauptausführungsfluss

1. INITIALISIERUNG
   └─> QApplication.instance()
   └─> Internacionalizador.inicializar_sistema_traducao()
   └─> InterfaceMonitor.__init__()

2. VERZEICHNISAUSWAHL
   └─> GerenciadorBotoes.selecionar_diretorio()
   └─> QFileDialog.getExistingDirectory()

3. START DER ÜBERWACHUNG
   └─> Observador.iniciar()
   ├─> DiretorioScanner.scan_directory() [Thread]
   └─> Observador.monitorar() [Thread]

4. EREIGNISVERARBEITUNG
   └─> Observador.processar_evento()
   ├─> EventoAdicionado.processar()
   ├─> EventoExcluido.processar()
   ├─> EventoModificado.processar()
   ├─> EventoRenomeado.processar()
   └─> EventoMovido.verificar_movimentacao()

5. OBERFLÄCHENAKTUALISIERUNG
   └─> InterfaceMonitor.inserir_evento_streaming()
   └─> GerenciadorTabela.atualizar_linha_mais_recente()

6. STATISTIKERZEUGUNG
   └─> GerenciadorEstatisticasUI.mostrar_estatisticas()
   └─> GeradorEstatisticas._gerar_todos_graficos()

7. DATENEXPORT
   └─> GerenciadorBotoes.exportar_dados()
   ├─> Excel: pandas.to_excel()
   ├─> CSV: pandas.to_csv()
   ├─> JSON: json.dump()
   └─> XML: ElementTree

8. SPRACHWECHSEL
   └─> GerenciadorEventosUI.alterar_idioma()
   └─> LocalizadorQt.set_idioma()

📦 Anforderungen und Abhängigkeiten

Hauptbibliotheken

PySide6>=6.5.0           # Qt6-Framework
pandas>=2.0.0            # Datenanalyse
matplotlib>=3.7.0        # Diagrammvisualisierung
seaborn>=0.12.0          # Statistische Diagramme
plotly==5.22.0           # Interaktive Diagramme
Pillow>=10.0.0           # Bildverarbeitung
tinytag>=1.10.0          # Audio-Metadaten
pymediainfo>=6.0.0       # Video-Metadaten
PyPDF2>=3.0.0            # PDF-Metadaten
openpyxl>=3.1.0          # Excel Lesen/Schreiben
python-docx>=0.8.11      # DOCX-Metadaten
chardet>=5.1.0           # Encoding-Erkennung
squarify>=0.4.3          # Treemap-Diagramme
psutil>=5.9.0            # Systemüberwachung
pywin32>=305             # Windows-API

Systemanforderungen

  • Betriebssystem: Windows 10/11 (64-bit)
  • Python: 3.10+
  • RAM: 4 GB Minimum (8 GB empfohlen)
  • Speicher: 100 MB freier Speicherplatz

✨ Hauptfunktionen

Echtzeitüberwachung
  • ✓ Erkennung von Datei-/Ordnererstellungen
  • ✓ Erkennung von Datei-/Ordnerlöschungen
  • ✓ Erkennung von Inhaltsänderungen
  • ✓ Erkennung von Umbenennungen
  • ✓ Erkennung von Verschiebungen zwischen Ordnern
  • ✓ Unterscheidung zwischen Datei- und Ordneroperationen
  • ✓ Intelligentes Debouncing für große Dateien
  • ✓ Unterstützung für Massenoperationen (Batch)
Metadatenextraktion (47 spezialisierte Module)
  • Quellcode: Zeilen, Klassen, Funktionen, Imports
  • Bilder: Abmessungen, EXIF, Format, DPI
  • Audio: Dauer, Bitrate, Künstler, Album
  • Video: Codec, Auflösung, Bildrate, Dauer
  • Dokumente: Seiten, Wörter, Autor, Erstellungsdatum
  • Tabellenkalkulationen: Anzahl Blätter, Zeilen, Spalten
  • Präsentationen: Anzahl der Folien
  • Archive: enthaltene Dateien, entpackte Größe
  • Datenbanken: Tabellen, Datensätze
  • Ausführbare Dateien: Version, digitale Signatur, Architektur
  • Logs: erste/letzte Zeile, Zeilenanzahl
  • Konfigurationen: erkannten Format-Typ
Datenvisualisierung (18 Diagrammtypen)
  • ✓ Torte: Verteilung der Operationen
  • ✓ Balken: Top-Dateitypen
  • ✓ Zeitleiste: Ereignis-Zeitleiste
  • ✓ Treemap: Typen-Hierarchie
  • ✓ Histogramm: Verteilung nach Stunde
  • ✓ Pareto: 80/20-Analyse
  • ✓ Linie: Tägliche zeitliche Entwicklung
  • ✓ Boxplot: Größenverteilung
  • ✓ Radar: Ereignisse pro Stunde/Tag/Typ
  • ✓ Heatmap: Zeitliche Heatmap
  • ✓ Scatter: Größe vs. Zeit
  • ✓ Sankey: Fluss von Operationen/Typen/Pfaden
  • ✓ Dotplot: Größenverteilung
  • ✓ Baum: Verzeichnisstruktur
Erweiterte Filter
  • ✓ Nach Operationstyp
  • ✓ Nach Dateityp (Erweiterung)
  • ✓ Nach Datumsbereich
  • ✓ Nach Name/enthaltenem Text
  • ✓ Kombination mehrerer Filter
  • ✓ Filterrate in Echtzeit
  • ✓ Synchronisierung mit dem Hauptmenü
Datenexport
  • ✓ Excel (.xlsx) - mit Formatierung
  • ✓ CSV (.csv) - kommagetrennt
  • ✓ JSON (.json) - strukturiert
  • ✓ XML (.xml) - hierarchisch
  • ✓ SQLite (.db) - vollständige Datenbank
  • ✓ Text (.txt) - einfach
  • ✓ Optionen: nur sichtbare, aktive Filter, Auswahl
Internationalisierung
  • ✓ 6 unterstützte Sprachen
  • ✓ Vollständige Übersetzung der Benutzeroberfläche
  • ✓ Übersetzung von Metadaten
  • ✓ Übersetzung der Operationstypen
  • ✓ Änderung in Echtzeit (ohne Neustart)
  • ✓ Persistenz der Einstellung
  • ✓ Fallback auf Englisch

🎯 Implementierte Best Practices

Sauberer Code (Clean Code)

  • ✓ Deskriptive, selbsterklärende Namen
  • ✓ Kleine, fokussierte Funktionen (< 50 Zeilen)
  • ✓ Vermeiden von Magic Numbers (Konstanten verwenden)
  • ✓ Code-Dokumentation (Docstrings)
  • ✓ Konsistentes Format
  • ✓ Vermeidung von Code-Duplizierung (DRY)

Performance

  • ✓ Lazy Loading von Metadaten
  • ✓ Caching häufiger Ergebnisse
  • ✓ Asynchrone Verarbeitung
  • ✓ Batch-Verarbeitung
  • ✓ Optimierte Datenbankindizes
  • ✓ Effiziente Speichernutzung

Wartbarkeit

  • ✓ Extreme Modularisierung (200+ Module)
  • ✓ Trennung der Verantwortlichkeiten
  • ✓ Geringe Kopplung
  • ✓ Hohe Kohäsion
  • ✓ Konsistente Benennungskonventionen

🚀 Zum Hinzufügen neuer Funktionen

  • Neuer Diagrammtyp: Von data/GeradorEstatisticas/gst_01_base_gerador.py erben
  • Neuer Eventtyp: Von services/ob_02_BaseEvento.py erben
  • Neue Spalte: Getter in services/ob_09_GerenciadorColunas.py hinzufügen
  • Neue Sprache: linceu_XX.ts in source/locale/ erstellen
  • Neuer Filter: In tools/GerenciamentoAdministradorFiltros/ hinzufügen

📝 Wichtige Hinweise

Spezifische Bibliotheksversionen

futures==3.0.5
kaleido==0.2.1
plotly==5.22.0

Kritische Dateien

  • monitoramento.db - Hauptdatenbank (SQLite)
  • language_config.json - Sprachpräferenz
  • colunas_coloridas.json - Farbkodierung
  • cores_operacoes.json - Farben je Operationstyp
  • config.json - Allgemeine Einstellungen

Logs

Protokollsystem mit automatischer Rotation unter:

%APPDATA%/Linceu_Lighthouse/logs/

📄 Lizenz und Urheberschaft

Autoren: Fernando Nillsson Cidade
Version: v0.1.3.0
Lizenz: GNU Affero General Public License v3.0 (AGPL-3.0)

Für weitere Informationen siehe die spezifische Dokumentation jedes Moduls im Quellcode.


About

Linceu Lighthouse é uma ferramenta de monitoramento que aplica os princípios de Integridade de Arquivos (File Integrity Monitoring - FIM) para fornecer um registro detalhado e transparente de todas as atividades em seus diretórios mais importantes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages