201 lines
8.9 KiB
Markdown
201 lines
8.9 KiB
Markdown
# 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):
|
|
1. User sees real-time rainfall data (Today, Hourly, MAR Acc, Yearly Acc) updating automatically
|
|
2. User sees solar and battery voltage with visual status indicators
|
|
3. User sees station ID, version info, current time/date, and communication status (ASU/dBm)
|
|
4. User sees login status indicator on dashboard
|
|
5. Dashboard loads in <2 seconds on Pi Zero 2 W (LCP <200KB JS bundle)
|
|
6. All touch targets are minimum 44px for finger-friendly interaction
|
|
7. Dashboard displays correctly in both 1024x600 (kiosk) and Full HD (remote) modes
|
|
8. 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):
|
|
1. User can view and edit Station Info (ID, location details)
|
|
2. User can manually set Date and Time through settings interface
|
|
3. User can configure Mobile/GPRS settings including Master/SubMaster and Engineer phone numbers
|
|
4. User can configure ADC channels with type selection (4-20mA or 0-10vDC), Datum offset, and Range
|
|
5. User can configure Rainfall sensor ID and set Danger/Warning/Start thresholds with time windows
|
|
6. User can configure Water Level sensor IDs and thresholds
|
|
7. User can configure EVAP settings including ID, reset times, and max/min levels
|
|
8. User can configure SIREN settings
|
|
9. Configuration persists across browser sessions (localStorage + backend sync)
|
|
10. 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):
|
|
1. User can view Flash Memory file list with metadata (filename, size, date)
|
|
2. User can view CSV file contents without freezing the interface
|
|
3. User can delete CSV files from Flash Memory with confirmation
|
|
4. User can export data as CSV with progress indication
|
|
5. User can configure Tieda data transmission settings
|
|
6. User can configure Local IP Address, Subnet Mask, Gateway, and DNS
|
|
7. User can view MAC address in Network settings
|
|
8. User can configure Transfer Protocol (FTP/SCP/SFTP/WEBDAV) for data push
|
|
9. User can configure Server IP, Port, and File Directory for remote data transmission
|
|
10. User can configure Tide Hour settings
|
|
11. User can view/set Latitude and Longitude (manual input or GPS)
|
|
12. User can view live ADC readings for all channels in Calibration view
|
|
13. User can view calculated sensor values based on Datum/Range settings
|
|
14. User can reset rainfall tip counters
|
|
15. User can reset calibration readings
|
|
16. CSV operations run in background (Web Workers) without blocking UI
|
|
17. 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
|
|
|
|
1. **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.
|
|
|
|
2. **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.
|
|
|
|
3. **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*
|