Logo Lanfrica

Abemelekgit/Smart-Megazen-Desktop-app

Domaine:

environment and energy

Type de record:

softwareproject
Créateur:
Abe
Hôte:
An industrial IoT ecosystem protecting Ethiopia's exports using ESP32 sensor nodes, Firebase Realtime Database, an Electron desktop command center for operations, and an Expo mobile suite for investor monitoring # Smart-Megazen Control Center Real-time IoT warehouse environmental monitoring desktop app built with **Electron 31 + React 18 + Vite 5 + Tailwind CSS 3 + Firebase**. --- ## Features - **Live Sensor Dashboard** — 10-node real-time grid with temperature, humidity, battery, and RSSI - **Critical Alert Overlay** — automatic full-screen alert when a node breaches thresholds or goes offline - **Humidity Heatmap** — visual warehouse floor map colored by humidity readings - **PDF Reports** — exportable sensor snapshots via native save dialog - **Per-node Settings** — configurable thresholds (max humidity, temp range, battery floor) - **Firebase Realtime Database** — live push updates from ESP32 sensor nodes - **Offline-safe** — mock data preview mode when Firebase is not configured --- ## Getting Started ### 1. Install dependencies ```bash npm install ``` ### 2. Configure Firebase (optional for preview) ```bash cp .env.example .env.local # Fill in your Firebase credentials in .env.local ``` ### 3. Run the app ```bash npm start ``` > **Linux (Wayland):** The `npm start` script includes the correct `--ozone-platform=wayland` flags automatically. --- ## Project Structure ``` Smart-Megazen/ ├── electron/ │ ├── main.js # Electron main process, IPC handlers, security │ └── preload.js # Secure IPC bridge → window.megazen API ├── src/ │ ├── components/ │ │ ├── Sidebar.jsx # Navigation + live status pills │ │ ├── Dashboard.jsx # KPI cards + sensor grid │ │ ├── SensorGrid.jsx # Sortable live sensor table │ │ ├── Map.jsx # Humidity heatmap grid │ │ ├── CriticalAlert.jsx # Full-screen critical overlay │ │ ├── Reports.jsx # PDF export interface │ │ └── Settings.jsx # Per-node threshold config │ ├── context/ │ │ └── SensorContext.jsx # Global real-time state + watchdog │ ├── services/ │ │ └── firebase.js # Firebase SDK wrapper (null-safe) │ ├── constants/ │ …