Gerenciador de Download XML
Objetivo principal
Aplicação desktop (Angular + Electron) que permite aos clientes da Avanço Informática baixar em massa XMLs fiscais (NFe/NFCe) previamente exportados e arquivados em S3. O usuário é guiado por um fluxo em etapas: login/identificação, escolha da pasta de destino, seleção das solicitações de exportação disponíveis, download paralelo com progresso e retomada, e tela de conclusão com estatísticas.
Principais tecnologias
Angular 21 (standalone/signals) / Angular Material & CDK / Tailwind CSS v4 / Electron 35 + electron-builder / Angular SSR (Express) / RxJS / TypeScript / Vitest / adm-zip
Principais funcionalidades
- Autenticação JWT: login por e-mail/senha contra a API própria da Avanço
- Resolução dinâmica da API por tenant: consulta um serviço "centralizador" para descobrir a URL da API do cliente antes do login
- Listagem de solicitações de exportação: exibe e filtra por status (disponível, restaurando, expirada, concluída, etc.) com paginação
- Manifesto de arquivos: ao selecionar solicitações, obtém contagem de arquivos, tamanho total e tempo estimado
- Download paralelo em lote: pool de até 50 downloads simultâneos com barra de progresso agregada e log por arquivo
- Retomada incremental: usa HTTP Range para continuar downloads parciais e detectar arquivos já completos
- Checkpoint de resiliência: grava progresso em disco para retomar downloads entre sessões do app
- Renovação automática de URLs assinadas: detecta expiração de links do S3 durante o lote e atualiza as tarefas pendentes
- Cancelamento de downloads em andamento preservando o progresso já realizado
- Organização automática dos arquivos por referência/CNPJ/tipo de documento/modelo fiscal, com descompactação automática de .zip
Principais integrações
- API própria da Avanço Informática: autenticação, listagem de exportações, manifesto de arquivos e notificação de conclusão do download
- Serviço centralizador: resolve a URL base da API correta por usuário/tenant antes do login
- AWS S3: origem dos arquivos XML/ZIP baixados via URLs assinadas, com suporte a download parcial (Range)
- AWS S3 (deploy): pipeline de CI publica os instaladores (AppImage/deb/exe) em bucket próprio
- GitLab CI/CD: build e deploy automatizados usando imagem Docker própria do projeto