Sistema bancário projetado com abordagem offline-first, desenvolvido para garantir a continuidade das operações em instituições financeiras em Angola mesmo em situações de baixa ou ausência de conectividade à internet.
# BancoContinuo
Sistema de atendimento bancário **offline-first**, capaz de realizar operações essenciais sem ligação à internet e sincronizar os dados automaticamente assim que a conectividade é restabelecida.
O projeto é composto por uma API em **Django** (backend) e uma interface em **Vue 3** (frontend) com suporte offline via IndexedDB.
## Índice
- Visão geral
- Funcionalidades
- Estrutura do projeto
- Tecnologias principais
- Pré-requisitos
- Configuração do backend
- Configuração do frontend
- Testes
- Fluxo de desenvolvimento
- Documentação interna
- Notas importantes
- Como contribuir
## Visão geral
O Banco Contínuo foi desenhado para agências e postos de atendimento com ligação à internet instável. Os operadores conseguem registar clientes, abrir contas e processar transações mesmo offline; as operações ficam em fila local e são sincronizadas com o servidor assim que a rede volta a estar disponível, evitando perda de dados e duplicação de operações.
## Funcionalidades
- **Gestão de utilizadores com papéis** — `ADMINISTRADOR`, `GERENTE` e `OPERADOR`, cada um com o seu painel dedicado.
- **Gestão de agências** — registo e consulta de agências bancárias.
- **Gestão de clientes e contas** — abertura de contas e consulta de detalhes do cliente.
- **Operações bancárias** — depósitos, transferências e outras transações, com prevenção de duplicação através de `ProcessedOperation`.
- **Modo offline** — fila de operações local (Dexie/IndexedDB) com sincronização automática (`sync_engine.js`) quando a ligação é restabelecida.
- **Comprovativos em PDF** — geração de comprovativos de operações com jsPDF.
- **Auditoria** — registo de ações (`AuditLog`) para rastreabilidade.
- **Relatórios** — módulo dedicado a relatórios de atividade.
- **Autenticação segura** — JWT via Simple JWT, com estado gerido no frontend por Pinia.
- **PWA-ready** — suporte a Progressive Web App através do `vite-plugin-pwa`.
## Estrutura do projeto
```
BancoContinuo/
├── backend/ …