8.9 KiB
TCKRTUIYO - Project Roadmap
Project: RTU Web Interface for Rainfall Monitoring
Version: v1.0
Created: 2026-03-13
Overview
This roadmap delivers a modern web interface for Base Station/Real-Time Unit (RTU) rainfall monitoring. Built for Raspberry Pi Zero 2 W with 7" touchscreen display, supporting both local kiosk mode (1024x600) and remote Full HD access.
Core Value: Real-time rainfall and sensor monitoring with local display and server data transmission.
Phases
- Phase 1: Foundation & Dashboard - Modern dashboard with real-time sensor display and performance optimization
- Phase 2: Settings Framework & Core Configuration - Settings infrastructure, station config, and sensor calibration
- Phase 3: Data Management & Network Stack - CSV workflows, file management, and network protocols
Phase Details
Phase 1: Foundation & Dashboard
Goal: Users can view real-time rainfall, voltage, and station status on a modern, performant dashboard optimized for 7" touchscreen display.
Depends on: Nothing (first phase)
Requirements: DASH-01, DASH-02, DASH-03, DASH-04, DASH-05, DASH-06, DASH-07, UI-01, UI-02, UI-03, UI-04, UI-05
Success Criteria (what must be TRUE for users):
- User sees real-time rainfall data (Today, Hourly, MAR Acc, Yearly Acc) updating automatically
- User sees solar and battery voltage with visual status indicators
- User sees station ID, version info, current time/date, and communication status (ASU/dBm)
- User sees login status indicator on dashboard
- Dashboard loads in <2 seconds on Pi Zero 2 W (LCP <200KB JS bundle)
- All touch targets are minimum 44px for finger-friendly interaction
- Dashboard displays correctly in both 1024x600 (kiosk) and Full HD (remote) modes
- Navigation menu provides access to Settings, Calibration, and Flash Memory sections
Plans: 4 plans in 3 waves
Plan List:
- 01-01-PLAN.md — Core infrastructure (stores, API client, mode detection)
- 01-02-PLAN.md — Header and voltage components
- 01-03-PLAN.md — Dashboard view and rainfall display
- 01-04-PLAN.md — Navigation, login indicator, and bundle verification
Phase 2: Settings Framework & Core Configuration
Goal: Users can configure station information, sensors, and calibration parameters through a unified settings interface.
Depends on: Phase 1 (Foundation & Dashboard)
Requirements: STAT-01, STAT-02, STAT-03, SENS-01, SENS-02, SENS-03, SENS-04, SENS-05, SENS-06, SENS-07, SENS-08
Success Criteria (what must be TRUE for users):
- User can view and edit Station Info (ID, location details)
- User can manually set Date and Time through settings interface
- User can configure Mobile/GPRS settings including Master/SubMaster and Engineer phone numbers
- User can configure ADC channels with type selection (4-20mA or 0-10vDC), Datum offset, and Range
- User can configure Rainfall sensor ID and set Danger/Warning/Start thresholds with time windows
- User can configure Water Level sensor IDs and thresholds
- User can configure EVAP settings including ID, reset times, and max/min levels
- User can configure SIREN settings
- Configuration persists across browser sessions (localStorage + backend sync)
- Settings interface uses touch-optimized forms with validation feedback
Plans: TBD
Phase 3: Data Management & Network Stack
Goal: Users can manage data files, export CSV data, and configure network protocols for server communication.
Depends on: Phase 2 (Settings Framework & Core Configuration)
Requirements: NETW-01, NETW-02, NETW-03, NETW-04, NETW-05, NETW-06, DATA-01, DATA-02, DATA-03, DATA-04, DATA-05, CALB-01, CALB-02, CALB-03, CALB-04
Success Criteria (what must be TRUE for users):
- User can view Flash Memory file list with metadata (filename, size, date)
- User can view CSV file contents without freezing the interface
- User can delete CSV files from Flash Memory with confirmation
- User can export data as CSV with progress indication
- User can configure Tieda data transmission settings
- User can configure Local IP Address, Subnet Mask, Gateway, and DNS
- User can view MAC address in Network settings
- User can configure Transfer Protocol (FTP/SCP/SFTP/WEBDAV) for data push
- User can configure Server IP, Port, and File Directory for remote data transmission
- User can configure Tide Hour settings
- User can view/set Latitude and Longitude (manual input or GPS)
- User can view live ADC readings for all channels in Calibration view
- User can view calculated sensor values based on Datum/Range settings
- User can reset rainfall tip counters
- User can reset calibration readings
- CSV operations run in background (Web Workers) without blocking UI
- Network status indicators show connectivity state and last sync time
Plans: TBD
Progress Table
| Phase | Plans Complete | Status | Completed |
|---|---|---|---|
| 1. Foundation & Dashboard | 0/4 | Planned | - |
| 2. Settings Framework & Core Configuration | 0/3 | Not started | - |
| 3. Data Management & Network Stack | 0/3 | Not started | - |
Requirements Coverage
Phase 1: Foundation & Dashboard (12 requirements)
- DASH-01: Display real-time rainfall (Today, Hourly, MAR Acc, Yearly Acc) in mm
- DASH-02: Display solar voltage reading
- DASH-03: Display battery voltage with status indicator (HIGH/LOW)
- DASH-04: Display station ID and version info
- DASH-05: Display real-time clock (HH:MM:SS) and date (YYYY-MM-DD)
- DASH-06: Display communication status (ASU/dBm/percentage)
- DASH-07: Display login status indicator
- UI-01: Modern, compact UI design optimized for 1024x600 display
- UI-02: Touch-friendly interface (44px+ touch targets)
- UI-03: Responsive layout for Full HD remote access
- UI-04: Fast performance on Pi Zero 2 W (< 200KB JS bundle)
- UI-05: Navigation menu with utility/settings, calibration, flash memory
Phase 2: Settings Framework & Core Configuration (11 requirements)
- STAT-01: View/edit Station Info
- STAT-02: Set Date and Time manually
- STAT-03: Configure Mobile/GPRS settings (Master/SubMaster numbers, Engineer numbers)
- SENS-01: Configure ADC channels (4-20mA, 0-10vDC types)
- SENS-02: Set Datum offset for each ADC channel
- SENS-03: Set Range for each ADC channel
- SENS-04: Configure Rainfall sensor ID and thresholds
- SENS-05: Set Danger/Warning/Start rainfall thresholds with time windows
- SENS-06: Configure Water Level sensor IDs and thresholds
- SENS-07: Configure EVAP settings (ID, reset times, max/min levels)
- SENS-08: Configure SIREN settings
Phase 3: Data Management & Network Stack (12 requirements)
- NETW-01: Configure Local IP Address, Subnet Mask, Gateway, DNS
- NETW-02: Display MAC address
- NETW-03: Configure Transfer Protocol (FTP/SCP/SFTP/WEBDAV)
- NETW-04: Configure Server IP, Port, File Directory
- NETW-05: Configure Tide Hour settings
- NETW-06: Display/Set Latitude and Longitude (manual or from GPS)
- DATA-01: View Flash Memory file list
- DATA-02: View CSV file contents
- DATA-03: Delete CSV files from Flash Memory
- DATA-04: Export data via CSV
- DATA-05: Configure Tieda data transmission
- CALB-01: View live ADC readings for all channels
- CALB-02: View calculated sensor values based on Datum/Range
- CALB-03: Reset rainfall tip counters
- CALB-04: Reset calibration readings
Total: 35/35 v1 requirements mapped ✓
Phase Ordering Rationale
-
Phase 1 (Dashboard First): The dashboard is the core value proposition and has the strictest performance requirements. Validating performance on Pi Zero 2 W hardware early prevents costly architectural changes later.
-
Phase 2 (Settings Framework): Settings infrastructure is required before implementing data management. Configuration persistence and bounded memory patterns must be established before handling file operations.
-
Phase 3 (Data & Network Last): CSV workflows and network protocols add complexity (Web Workers, file operations, protocol handling) that can be deferred until core functionality is stable.
Key Decisions
| Decision | Rationale | Impact |
|---|---|---|
| 3-phase coarse structure | Matches coarse granularity config, natural delivery boundaries | Phases align with major functional areas |
| Dashboard first | Core user value + performance validation on target hardware | Early risk mitigation for Pi Zero constraints |
| Settings before data management | Configuration persistence required for data export | Logical dependency chain |
| Network stack in Phase 3 | FTP/SCP/SFTP/WebDAV protocols are complex, deferrable | Reduces initial complexity |
Notes
- Performance Budget: <200KB initial JS gzipped for initial load
- Touch Target Minimum: 44px (per Material Design guidelines)
- Bundle Size Target: <170KB for dashboard to leave buffer
- Research Flags: Phase 3 may need additional research on CSV libraries compatible with Web Workers
Last updated: 2026-03-13