Skip to content

eduardosdl/biosafe-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BioSafe App

Aplicativo móvel para gerenciamento de acesso por meio de fechadura biométrica, permitindo controle seguro e eficiente de acessos a ambientes restritos.

📱 Demo

BioSafe Demo

📋 Sobre o Projeto

O BioSafe é uma solução para controle de acesso utilizando biometria. O sistema foi projetado para aumentar a segurança e monitoramento de diferentes locais e pontos de acesso. O App BioSafe foi criado com objetivo de melhorar a experiência do usuário e oferecer maior controle sobre o acesso.

Projeto IOT e Nuvem Biosafe

✨ Funcionalidades do APP

  • Monitoramento em Tempo Real: Visualização do estado atual da fechadura (aberta/fechada)
  • Histórico de Acessos: Registro de todas as tentativas de acesso, bem-sucedidas ou não
  • Gerenciamento de Usuários: Cadastro de usuários com diferentes níveis de acesso
  • Abertura Remota: Possibilidade de abrir a fechadura remotamente através do aplicativo

🔧 Configuração e Execução

Pré-requisitos

  • Flutter (versão 3.0 ou superior)
  • Dart (versão 2.17 ou superior)
  • Conexão com o mesmo WiFi do servidor Node-RED

Configuração do Ambiente

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/biosafe_app.git
    cd biosafe_app
  2. Instale as dependências:

    flutter pub get
  3. Configure o arquivo de host:

    Abra o arquivo lib/config/app_config.dart e altere o endereço IP para o da sua máquina onde o servidor Node-RED está sendo executado:

    class AppConfig {
      static const String host = '192.168.1.12'; // Altere para o IP da sua máquina
      static const int mqttPort = 1883;
      static const int httpPort = 1880;
      // ...
    }

    IMPORTANTE: O dispositivo que estiver executando o aplicativo precisa estar na mesma rede WiFi do servidor Node-RED para que a comunicação funcione corretamente.

  4. Execute o aplicativo:

    flutter run

🛠️ Arquitetura do Aplicativo

O aplicativo BioSafe foi construído utilizando Flutter e segue uma arquitetura de camadas bem definida para facilitar a manutenção, testabilidade e escalabilidade do código:

Camadas da Aplicação

  1. Apresentação (UI)

    • Organizado em pages (home, users, create)
    • Utiliza StatefulWidgets para gerenciar estado local
  2. Gerenciamento de Estado

    • Implementa o padrão Store para centralizar e gerenciar estados
    • Usa ValueNotifier para reatividade e atualizações da UI
    • Cada módulo possui sua própria store independente
  3. Repositórios

    • Implementa interfaces bem definidas (ILockRepository)
    • Responsável pela comunicação com fontes de dados externas
    • Isolado da camada de apresentação por meio de injeção de dependências
  4. Serviços

    • HttpClient encapsula requisições HTTP
    • Serviço MQTT para comunicação em tempo real
    • Isolamento de responsabilidades para facilitar testes
  5. Modelo de Dados

    • Classes de modelo para representação dos dados (LockStateModel, UserModel)
    • Métodos de serialização/deserialização JSON
    • Validação de dados

Estrutura de Pastas

A organização do código do aplicativo BioSafe segue uma estrutura modular e de fácil manutenção:

lib/                          # Código-fonte principal do aplicativo
├── main.dart                 # Ponto de entrada do aplicativo
├── config/                   # Configurações da aplicação
│   └── app_config.dart       # Constantes e configurações (endereços IP, portas, etc.)
├── data/                     # Camada de dados
│   ├── http/                 # Cliente HTTP para requisições à API
│   │   └── http_client.dart
│   ├── model/                # Modelos de dados
│   │   ├── lock_state_model.dart
│   │   └── user_model.dart
│   └── repository/           # Repositórios para acesso aos dados
│       ├── lock_repository.dart
│       └── user_repository.dart
└── pages/                    # Interfaces de usuário (UI)
    ├── main_screen.dart      # Tela principal com navegação
    ├── home/                 # Módulo da tela inicial
    │   ├── home_page.dart    # Página inicial do aplicativo
    │   └── stores/           # Gerenciamento de estado da tela inicial
    ├── users/                # Módulo de gerenciamento de usuários
    │   ├── users_page.dart   # Lista de usuários cadastrados
    │   └── stores/
    └── create/               # Módulo para criação
        ├── create_page.dart  # Formulário para cadastro
        └── stores/

Cada módulo do aplicativo (home, users, create) segue uma estrutura consistente contendo:

  • Arquivo principal da página (UI)
  • Pasta stores para gerenciamento de estado

Padrões de Projeto Utilizados

  • Injeção de Dependência: Componentes recebem suas dependências de fora
  • Repository Pattern: Abstrai a fonte de dados da lógica de negócio
  • Observer Pattern: Implementado através de ValueNotifier para atualizações reativas
  • Factory Method: Para criação de objetos modelo a partir de dados JSON

Comunicação Externa

  • HTTP: Para operações CRUD e obtenção de dados históricos
  • MQTT: Para comunicação em tempo real sobre o estado da fechadura

🤝 Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.

📄 Licença

Este projeto está licenciado sob a Licença MIT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages