A full-stack system for managing and verifying ESP32 IoT devices with geolocation capabilities.
- Device Management: Register, edit, and monitor ESP32 devices
- Location Verification: Validate device locations via QR codes
- Real-time Tracking: Interactive map visualization of device locations
- User Authentication: Secure access control for device management
- Validation System: Track and rate device validation history
- Frontend: React (TypeScript) with Vite, Leaflet maps
- Backend: Python Flask API with SQLite database
- Device Firmware: ESP32 Arduino code for location verification
- Authentication: JWT-based user sessions
npm install
npm run devcd backend
pip install -r requirements.txt
flask run- Generate device credentials in the web interface
- Upload firmware configuration to your ESP32
- Set device location via the interactive map
FLASK_SECRET_KEY: Application secret keyDATABASE_URI: SQLite database path (default:instance/auth.db)
Configure API endpoint in src/lib/config.ts
Build static files:
npm run buildDeploy to any static hosting service (Vercel, Netlify, etc.)
Deploy Flask app to Python hosting (Render, Railway, etc.)
- Device management:
src/components/DeviceManagement.tsx - Map visualization:
src/components/MapView.tsx - Authentication:
src/contexts/AuthContext.tsx - Backend API:
backend/app.py - ESP32 firmware:
backend/esp32/esp32_code.ino