An end-to-end IoT smart door platform that combines ESP32 hardware, a Go/Python backend, and a Flutter mobile app for secure and responsive home access control.
- Biometric access control with face recognition and anti-spoofing checks.
- Live two-way communication using WebRTC audio/video.
- Instant alerts via Firebase push notifications.
- Remote door control (lock/unlock) through MQTT-driven commands.
- Real-time event pipeline between door hardware, backend, and mobile clients.
- Built with C++ (PlatformIO) for ESP32.
- Reads sensors (PIR, reed switch) and drives actuators (lock, alarm).
- Publishes/subscribes through MQTT for low-latency state and command exchange.
- Go API server for business logic, MQTT coordination, REST/WebSocket APIs, and WebRTC signaling.
- Python face service for recognition + anti-spoofing (OpenCV/MediaPipe).
- Infra via Docker Compose (database + Mosquitto broker + backend stack).
- Cross-platform app built with Flutter.
- Supports incoming-call-like UX, live monitoring, notification handling, and remote unlock.
- Languages: Dart, Go, C++, Python
- Frameworks/Libraries: Flutter, Gin, OpenCV, MediaPipe
- Protocols: WebRTC, MQTT, WebSockets, REST
- Infrastructure/Tools: Docker, Firebase, PlatformIO
See: /backend/RUNNING.md
Quick start (recommended):
cd backend
docker compose up --buildThe API is exposed at http://localhost:8080.
- Open
/esp32in PlatformIO (VS Code extension). - Configure network/broker values in
/esp32/src/config.h. - Build/flash firmware to your ESP32 board.
cd application
flutter pub get
flutter run- Backend run guide:
/backend/RUNNING.md - Database schema:
/docs/DATABASE_SCHEMA.md - WebRTC setup:
/docs/webrtc-setup.md - WebRTC audio/video architecture:
/docs/webrtc-audio-video-architecture.md
.
├── application/ # Flutter mobile app
├── backend/ # Go API + Python face service + docker stack
├── docs/ # Architecture and protocol documentation
└── esp32/ # Firmware for smart door hardware
