Crate lockwise_backend

Crate lockwise_backend 

Source
Expand description

§LockWise Back-end

Serviços de back-end para o sistema LockWise, construído com Rust (Rocket) para a API principal e Python (FastAPI) para o serviço de reconhecimento de voz, utilizando PostgreSQL para armazenamento e MQTT para comunicação em tempo real.

§Funcionalidades

  • Gerenciamento de Usuários: Ver user para autenticação e contas de usuário
  • Gerenciamento de Dispositivos: Ver device para registro e controle remoto
  • Convites Temporários: Ver invite para compartilhamento de acesso
  • Comunicação MQTT: Ver mqtt para mensagens e heartbeats
  • Autenticação por Voz: Registro e verificação usando SpeechBrain (serviço Python)
  • Logs de Acesso: Histórico de operações em dispositivos
  • Configuração Remota: Atualização de parâmetros via MQTT

§Arquitetura

O back-end utiliza uma arquitetura baseada em microserviços leves:

  • Serviço Principal (Rust): API REST com Rocket, gerenciamento de usuários e dispositivos
  • Serviço de Voz (Python): Reconhecimento de voz com SpeechBrain e FastAPI
  • Banco de Dados: PostgreSQL para persistência de dados
  • Comunicação: MQTT para controle em tempo real dos dispositivos

§Configuração

Consulte o README.md para instruções detalhadas de configuração e execução.

Modules§

device 🔒
Módulo para gerenciamento de dispositivos.
invite 🔒
Módulo para gerenciamento de convites.
mqtt 🔒
Módulo para comunicação MQTT.
user 🔒
Módulo para gerenciamento de usuários.

Structs§

HomepageUrl
Invólucro para a URL da página inicial para redirecionamentos
SpeechbrainUrl
Invólucro para a URL do serviço SpeechBrain
Token
Invólucro para token JWT dos cabeçalhos da requisição.

Statics§

PENDING_CONFIG_UPDATES
Armazenamento global para atualizações de configuração pendentes
PENDING_PINGS
Armazenamento global para pings pendentes
RECENT_COMMANDS
Armazenamento global para comandos recentes

Functions§

health 🔒
Endpoint de verificação de saúde retornando “OK”.
index 🔒
Endpoint raiz que redireciona para a página inicial configurada.
main 🔒
Ponto de entrada principal do serviço de back-end LockWise. Inicializa banco de dados, cliente MQTT, configura tabelas, inicia manipulador de eventos MQTT, tarefa de limpeza de logs e lança o servidor HTTP Rocket.

Type Aliases§

PendingConfigUpdates 🔒
Rastreia solicitações de atualização de configuração pendentes com canal de resposta
PendingPings 🔒
Rastreia solicitações de ping pendentes com timestamp e canal de resposta
RecentCommands 🔒
Armazena comandos recentes enviados aos dispositivos com timestamp para desduplicação