Ce projet est une application mobile développée avec FlutterFlow, permettant de contrôler à distance une porte équipée d’un système de reconnaissance faciale et de capteurs connectés à un Raspberry Pi. L'application offre des fonctionnalités d'interaction, de communication et de sécurité pour l'utilisateur.
- Authentification par mot de passe.
- Génération de codes temporaires à durée limitée.
- Interface de contrôle de la porte (état ouvert/fermé).
- Système d’alerte et notifications (ex: ouverture détectée).
- Enregistrement et envoi de messages vocaux à la porte.
- Affichage d’informations visuelles (image, état de la porte).
- Effets visuels (fondu, masquage de texte, opacité dynamique).
- FlutterFlow : outil low-code pour construire l’interface et la logique applicative.
- Firebase (optionnel) : pour les notifications push et le stockage des fichiers.
- Raspberry Pi : serveur distant qui reçoit et traite les commandes envoyées par l’app.
- HTTP Requests : envoi de données comme les messages audio.
HomePage: page d'accueil avec l’état de la porte et accès aux fonctionnalités.LoginPage: authentification utilisateur (Face ID ou mot de passe).CodePage: génération de codes temporaires.VoicePage: enregistrement et envoi d’un message audio.SettingsPage: réglages (notifications, durée de validité, etc.).
L’enregistrement vocal est déclenché par un bouton. Le fichier est ensuite automatiquement envoyé via HTTP au Raspberry Pi, qui peut le lire ou le stocker.
- Implémentation d’un système d’enregistrement audio dans FlutterFlow (nécessité d’utiliser des Custom Actions).
- Superposition et gestion d’éléments interactifs (opacité, animations).
- Absence de certains widgets (ex:
AnimatedOpacity) nécessitant des solutions alternatives. - Intégration de notifications sans Firebase initialement configuré.
- Connexion en temps réel via WebSocket.
- Intégration complète de Firebase (authentification, Firestore, FCM).
- Interface plus personnalisable pour les utilisateurs.
- Réception d’un retour vidéo depuis la caméra de la porte.