Skip to content

viniciusmecosta/KeyBudget

Repository files navigation

KeyBudget

Flutter Dart Firebase

O KeyBudget é um aplicativo desenvolvido em Flutter que une praticidade e segurança para o gerenciamento de finanças pessoais e de credenciais. Com um design moderno e responsivo, o projeto oferece controle detalhado de gastos, relatórios visuais e armazenamento seguro de senhas com criptografia local.


Principais Recursos

  • Controle Financeiro Completo: Registre despesas, crie categorias e acompanhe seu fluxo de caixa.
  • Gerenciamento de Credenciais: Armazene logins e senhas com criptografia AES local antes do envio ao banco de dados.
  • Análises e Relatórios: Visualize tendências e comparativos mensais por meio de gráficos interativos.
  • Autenticação Segura: Suporte a login com e-mail/senha, Google e autenticação biométrica.
  • Privacidade Reforçada: Bloqueio automático e proteção contra captura de tela.
  • Importação e Exportação: Transfira dados em formato CSV de forma simples e rápida.

Autenticação e Segurança

  • Login Flexível: Autenticação via e-mail/senha e integração com o Google.
  • Biometria: Desbloqueio rápido por impressão digital ou reconhecimento facial.
  • Bloqueio Automático: Requer nova autenticação ao retornar do segundo plano.
  • Proteção Visual: Impede capturas e gravações de tela no Android.

Gerenciamento de Despesas

  • CRUD Completo: Adicione, edite e remova despesas com facilidade.
  • Categorias Personalizadas: Crie e edite categorias com ícones e cores próprias.
  • Filtros Avançados: Analise gastos por categoria ou período.
  • Navegação Temporal: Acesse totais mensais e alterne entre diferentes períodos.
  • Exportação e Importação CSV: Mantenha seus dados portáteis e seguros.

Gerenciamento de Credenciais

  • Sincronização com Firestore: Armazena dados criptografados em nuvem.
  • Criptografia AES Local: As senhas são criptografadas no dispositivo antes do envio.
  • Cópia Rápida: Copie informações como usuário e senha com um toque.
  • Identificação Visual: Associe logos personalizados a cada credencial.

Dashboard e Relatórios

  • Resumo Mensal: Exibe gastos, credenciais e comparativo com meses anteriores.
  • Tendência de Gastos: Gráfico de linha com o histórico dos últimos seis meses.
  • Distribuição por Categoria: Gráfico de pizza com análise de gastos detalhada.
  • Atividades Recentes: Lista das últimas movimentações registradas.

Perfil do Usuário

  • Gerenciamento de Perfil: Atualize informações como nome, telefone e foto.
  • Alteração de Senha: Modifique sua senha de forma segura.

Tecnologias Utilizadas

Provider Flutter Secure Storage Encrypt FL Chart Local Auth Google Sign In Syncfusion PDF Viewer Google ML Kit Text Recognition


Instalação e Configuração

Pré-requisitos

  • Flutter SDK instalado e configurado
  • Conta no Firebase
  • Chave AES de 32 caracteres para criptografia local

Passos

git clone https://github.com/viniciusmecosta/KeyBudget.git
cd KeyBudget
  1. Configurar o Firebase

    • Crie um projeto no Firebase Console.
    • Adicione o app Android/iOS e baixe os arquivos google-services.json e/ou GoogleService-Info.plist.
    • Ative Authentication (E-mail/Senha e Google) e Firestore Database.
  2. Criar arquivo .env Na pasta assets/, adicione:

    ENCRYPTION_KEY=sua_chave_de_criptografia_de_32_caracteres
    
  3. Instalar dependências

    flutter pub get
  4. Executar o aplicativo

    flutter run

Regras de Segurança do Firestore

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {

    match /users/{userId} {
      allow read, update: if request.auth != null && request.auth.uid == userId;
      allow create: if request.auth != null;
    }

    match /users/{userId}/{collection}/{docId} {
      allow read, write, create, delete: if request.auth != null && request.auth.uid == userId;
    }
  }
}

Estrutura do Projeto

lib/
├── main.dart
├── app/
│   ├── config/
│   ├── view/
│   ├── viewmodel/
│   └── widgets/
├── core/
│   ├── models/
│   └── services/
└── features/
    ├── auth/
    ├── credentials/
    ├── dashboard/
    ├── expenses/
    ├── analysis/
    ├── category/
    └── user/