Inspiration: Floods are one of the deadliest and most unpredictable natural disasters in India and across the world. Every year, thousands of lives are lost not because help wasn't available — but because the right information didn't reach the right people in time.

We were inspired by real news coverage of the 2020 Hyderabad floods, where residents were trapped because there was no centralized, real-time system to warn them about rising water levels in their specific localities. Emergency responders were flying blind, manually collecting reports over phone calls.

What it does: LIVE SENSOR INTEGRATION — FloodSense ingests water level readings from IoT sensors in real time. As the water level changes, the entire system responds instantly — recalculating risk scores for every monitored zone.

AI-POWERED RISK CLASSIFICATION — Each zone is analyzed using a multi-factor scoring engine that combines the sensor reading with text analysis of social reports. Keywords like "help", "trapped", "urgent", and "drowning" increase the risk score. Zones are classified into four levels: LOW, MODERATE, HIGH, and CRITICAL. LIVE COLOR-CODED MAP — An interactive dark map displays all monitored flood zones as glowing, color-coded markers. Green means safe. Yellow means moderate risk. Orange means high risk. Red means critical — evacuate immediately. DYNAMIC FULL-APP THEMING — The entire user interface changes color based on the highest current risk level. At CRITICAL level, the app turns red, the alert banner flashes an emergency message, and the app icon changes to a warning symbol. ACTIVITY LOG & DATA EXPORT — Every sensor change and risk update is logged with a timestamp. All zone data can be exported as a CSV file for use by emergency response teams and government dashboards. SIMULATION MODE — A built-in simulate feature mimics real-world sensor drift, making FloodSense ideal for training drills and system stress testing.

How we built it: FRONTEND (HTML + CSS + JavaScript) — The entire user interface was built as a single HTML file with no external framework dependencies. We used CSS custom properties (variables) to enable the real-time theme switching between risk levels. The dark, industrial aesthetic was designed to feel like a professional emergency operations center.

MAPPING (Leaflet.js) — We used the open-source Leaflet.js library with CartoDB dark map tiles to render the interactive flood zone map. Custom animated SVG markers were created in pure JavaScript to show pulsing risk indicators. RISK ENGINE (JavaScript, ported from Python) — The core risk classification logic was originally prototyped in Python using standard libraries. We then ported it to JavaScript so it runs entirely in the browser with no server needed. The engine uses keyword matching for text risk scoring and threshold-based classification for sensor risk scoring. DESKTOP APP WRAPPER (Python + PyWebView) — To convert the web app into a native Windows desktop application, we used PyWebView — a lightweight Python library that wraps a web view inside a native OS window. This allowed us to add native window controls (close, minimize, maximize) while keeping the HTML/CSS/JS frontend. PACKAGING (PyInstaller) — We used PyInstaller to compile the entire application — Python runtime, PyWebView, and the HTML file — into a single standalone Windows .exe file that requires no installation. ICON DESIGN (Python + Pillow) — The custom application icon was generated programmatically using the Pillow image library, creating a multi-resolution .ico file with a water drop and wave design.

Challenges we ran into:

PACKAGING THE HTML FILE INTO THE EXE REAL-TIME UI THEMING LEAFLET MAP IN A FRAMELESS WINDOW CROSS-PLATFORM ICON GENERATION BALANCING SIMPLICITY WITH FUNCTIONALITY

Accomplishments that we're proud of:

FULLY FUNCTIONAL PROTOTYPE IN ONE SESSION REAL AI LOGIC RUNNING IN REAL TIME COMPLETE VISUAL EMERGENCY SYSTEM ZERO-DEPENDENCY DISTRIBUTION PROFESSIONAL DESIGN QUALITY

What we learned:

BRIDGING PYTHON AND WEB TECHNOLOGIES — We learned how to use PyWebView to bridge the gap between Python's ecosystem and the rich capabilities of modern web technologies. This opened our eyes to a whole class of hybrid desktop applications that combine the best of both worlds. REAL-TIME UI ARCHITECTURE — Building a UI that responds dynamically to changing data in real time — not just updating one component, but orchestrating changes across the entire interface — taught us a lot about state management and CSS variable-driven theming. PACKAGING FOR REAL-WORLD DISTRIBUTION — PyInstaller and the challenges of bundling assets taught us that the gap between "it works on my machine" and "it works for everyone" is significant. We now have a much deeper understanding of application packaging and distribution. THE IMPORTANCE OF VISUAL COMMUNICATION IN EMERGENCIES — We learned that in disaster scenarios, information hierarchy and visual clarity are not just design preferences — they are life-critical. Color, motion, and layout must all reinforce the same message instantly. ITERATIVE PROTOTYPING — We learned to move fast by starting with a Python script, then porting the logic to JavaScript, then wrapping it in a desktop app — rather than trying to build everything at once. Each iteration taught us something that improved the next.

What's next for FloodSense:

REAL IoT SENSOR INTEGRATION CROWD-SOURCED SOCIAL REPORTING MACHINE LEARNING RISK PREDICTION SMS AND PUSH ALERT SYSTEM GOVERNMENT DASHBOARD INTEGRATION

Built With

Share this project:

Updates

Submission history