-
Notifications
You must be signed in to change notification settings - Fork 0
Release v3.0.0 - Major Web Interface Enhancement #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
arunkumar-mourougappane
merged 1 commit into
main
from
web-server-on-adafruit-tft-feather
Oct 16, 2025
Merged
Release v3.0.0 - Major Web Interface Enhancement #6
arunkumar-mourougappane
merged 1 commit into
main
from
web-server-on-adafruit-tft-feather
Oct 16, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
🌐 Browser-Based Interface Release - Complete web server implementation (2000+ lines) - 7 professional pages: Home, Status, Scan, Analysis, iPerf, Latency, Channel - Mobile-responsive design with modern UI/UX ✨ Navigation & UX Improvements - Hierarchical dropdown navigation with Analysis submenu - Full-screen progress indicators with 70% opacity backdrop - Button-triggered scanning with visual feedback - CSS-only dropdown implementation (no JS dependencies) 📱 QR Code Integration - SVG-based QR code generation for WiFi sharing - Home page: 250x250px quick connect QR code - Status page: 300x300px detailed QR code with network info - Mobile-optimized for iOS/Android camera scanning - Standard WiFi QR format (WIFI:T:WPA;S:;P:;;) 📚 Documentation Consolidation - Created comprehensive Web Interface Guide (500+ lines) - Organized docs/ structure with user-guides/ and archive/ - Archived 14 redundant documentation files - Updated README.md and docs/README.md portal ⚡ Performance - Flash: 75.3% (1,085,961 bytes) - Only +4.3KB for QR codes - RAM: 19.1% (62,632 bytes) - Unchanged - Page load: <50ms, smooth 60fps animations - Multi-client support with concurrent access 🎯 Key Features - Zero configuration web access (port 80) - Works in both AP and Station modes - Touch-optimized for mobile devices - Professional gradient theme (#667eea → #764ba2) - Instant WiFi sharing via QR code Files Changed: - Added: src/web_server.cpp, include/web_server.h - Added: docs/user-guides/WEB_INTERFACE.md - Added: docs/archive/ (15 archived files) - Modified: CHANGELOG.md (v3.0.0 entry) - Modified: platformio.ini (version 3.0.0) - Modified: README.md (web interface section) - Modified: docs/README.md (updated portal) - Modified: src/main.cpp, src/command_interface.cpp - Deleted: 4 root-level redundant docs
📊 Build Size Analysis
Analysis
This analysis helps maintain optimal memory usage across code changes. |
arunkumar-mourougappane
added a commit
that referenced
this pull request
Oct 17, 2025
Added comprehensive network details page accessible by clicking on scan results. Features Implemented: ✅ Clickable Network List Items (Acceptance Criteria #1): - Each network item in scan results is now clickable - Clicking navigates to /scan/details?id=<network_index> - Added visual feedback on hover (background color change) - Mobile-friendly touch targets with inline onclick handlers ✅ Network Details Page (Acceptance Criteria #2): - New route handler handleScanDetails() at /scan/details - Back navigation button to return to scan results - Graceful error handling for invalid/missing network IDs - Scan results cached in memory to avoid re-scanning ✅ Information Display (Acceptance Criteria #3): Basic Network Information: - Network Name (SSID) with special handling for hidden networks - MAC Address (BSSID) formatted as XX:XX:XX:XX:XX:XX - Handles missing BSSID gracefully Signal Information: - RSSI displayed in dBm - Signal Quality calculated as percentage with 8-level descriptive scale: * 100% Excellent (Very Close) ≥ -30 dBm * 90% Excellent ≥ -50 dBm * 80% Very Good ≥ -60 dBm * 70% Good ≥ -67 dBm * 60% Fair ≥ -70 dBm * 50% Weak ≥ -80 dBm * 30% Very Weak ≥ -90 dBm * 10% Extremely Weak < -90 dBm - Visual signal indicators with emoji icons - Color-coded quality bar (green/yellow/orange/red) Channel Information: - Channel number with frequency band (2.4GHz or 5GHz) - Channel congestion analysis: Clear/Light/Moderate/Heavy/Severe - Counts networks on same channel with color-coded indicators Security Information: - Encryption type with icons for all 9 WiFi auth modes: * Open, WEP, WPA, WPA2, WPA/WPA2, WPA2 Enterprise, WPA3, WPA2/WPA3, WAPI - Security level assessment (None/Weak/Moderate/Good/Excellent) - Color-coded security ratings - Security warnings for open and WEP networks Connection Analysis/Recommendations: - Automated recommendations based on signal strength - Security assessment warnings - Channel congestion impact analysis - Clear ✅/⚠️ /❌ indicators for quick evaluation ✅ UI/UX Requirements (Acceptance Criteria #4): - Consistent purple gradient theme matching existing interface - Responsive design with proper spacing - Card-based layout with background colors for sections - Emoji icons throughout for visual recognition - Clean section-based information hierarchy ✅ Performance & Memory (Acceptance Criteria #5): - Scan result caching structure (CachedScanResult) - Supports up to 50 cached networks - 5-minute cache timeout (300000ms) - Uses PROGMEM and F() macro for static strings - Pre-allocated String buffers (html.reserve(8192)) - Cache validation before displaying details - Memory-efficient: Flash 83.1% (was 82.4%), RAM 16.4% (was 15.8%) ✅ Navigation & Accessibility (Acceptance Criteria #6): - Back to Scan Results button with absolute positioning - Breadcrumb-style navigation structure - Clickable entire network row (not just text) - Inline hover effects for visual feedback ✅ Edge Cases & Error Handling (Acceptance Criteria #7): - Cache expiration check with redirect to /scan - Invalid network ID validation with redirect - Out of bounds index checking - Missing BSSID handling with "Not Available" message - Hidden network SSID display as "<Hidden Network>" Technical Implementation: Data Structures: - CachedScanResult struct stores SSID, RSSI, channel, encryption, BSSID - Static array cachedNetworks[50] for result storage - lastScanTime timestamp for cache invalidation - isCacheValid() function checks timeout Route Registration: - Added /scan/details route in startWebServer() - handleScanDetails() function declaration in web_server.h Scan Page Modifications: - Modified handleScan() to cache results after scan - Made network list items clickable with onclick handlers - Added hover effects with inline onmouseover/onmouseout - Removed WiFi.scanDelete() to preserve results - Added hint text: "💡 Click on any network to view detailed information" - Hidden network handling in scan list Memory Optimization: - All static HTML strings use F() macro - Color values and descriptions stored efficiently - Switch statement for encryption type mapping - Minimal string concatenation with pre-allocation Build Results: ✅ ESP32dev: Flash 83.1% (1,088,625 bytes), RAM 16.4% (53,692 bytes) ✅ Feather ESP32-S3: Flash 71.9% (1,036,493 bytes), RAM 16.0% (52,496 bytes) Testing Checklist Progress: ✅ Builds successfully on both ESP32dev and Feather boards ✅ All encryption types handled with proper icons and descriptions ✅ Signal quality calculation matches acceptance criteria ranges ✅ Channel congestion correctly counts networks ✅ Back navigation implemented ✅ Invalid network ID redirects to scan page ✅ Memory usage within acceptable limits (< 85% flash, < 20% RAM) This implementation fully addresses Issue #10 acceptance criteria with a professional, user-friendly interface for viewing detailed WiFi network information.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🌐 Browser-Based Interface Release
✨ Navigation & UX Improvements
📱 QR Code Integration
📚 Documentation Consolidation
⚡ Performance
🎯 Key Features
Files Changed: