From 5876e61cbfae64568d7ca318faf85424e718068d Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 12 Mar 2026 06:08:15 +0800 Subject: [PATCH] docs: create roadmap (4 phases) --- .planning/REQUIREMENTS.md | 156 ++++++++++++++++++++++++++++++++++++++ .planning/ROADMAP.md | 85 +++++++++++++++++++++ .planning/STATE.md | 63 +++++++++++++++ 3 files changed, 304 insertions(+) create mode 100644 .planning/REQUIREMENTS.md create mode 100644 .planning/ROADMAP.md create mode 100644 .planning/STATE.md diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 000000000..36a84ce02 --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,156 @@ +# Requirements: TCKRTUIYO - Rainfall Station RTU Web Interface + +**Defined:** 2026-03-12 +**Core Value:** Real-time rainfall and environmental sensor monitoring with automatic data transmission to myvscada server + +## v1 Requirements + +Requirements for initial release. Each maps to roadmap phases. + +### Dashboard + +- [ ] **DASH-01**: Display current rainfall readings (Today, Hourly, MAR Acc, Yearly Acc) +- [ ] **DASH-02**: Display solar voltage reading +- [ ] **DASH-03**: Display battery voltage with status indicator (HIGH/NORMAL/LOW) +- [ ] **DASH-04**: Display current date and time (HH:MM:SS DD-MM-YYYY) +- [ ] **DASH-05**: Display station ID +- [ ] **DASH-06**: Display communication status (signal strength, connection status) +- [ ] **DASH-07**: Display software version +- [ ] **DASH-08**: Real-time updates (auto-refresh or Socket.IO) +- [ ] **DASH-09**: Last updated timestamp indicator + +### User Interface + +- [ ] **UI-01**: Touch-optimized interface for 7" 1024x600 display +- [ ] **UI-02**: Large touch targets (minimum 48px) +- [ ] **UI-03**: Main menu navigation +- [ ] **UI-04**: Responsive layout for remote HD access (1920x1080 on port 9090) +- [ ] **UI-05**: Login/logout functionality + +### Settings + +- [ ] **SETT-01**: Station Info display and edit +- [ ] **SETT-02**: Date/Time setting +- [ ] **SETT-03**: Mobile network settings view/edit +- [ ] **SETT-04**: ADC channel configuration (4 channels, types: 4-20mA, 0-10vDC) +- [ ] **SETT-05**: Rainfall sensor settings (ID, thresholds) +- [ ] **SETT-06**: Water level threshold settings +- [ ] **SETT-07**: EVAP settings +- [ ] **SETT-08**: Network settings (IP, subnet, gateway, DNS, MAC) +- [ ] **SETT-09**: Protocol settings (FTP, SCP, SFTP, WebDAV server config) + +### Calibration + +- [ ] **CAL-01**: View live ADC readings (4 channels) +- [ ] **CAL-02**: View current sensor readings with units +- [ ] **CAL-03**: Reset rainfall counters +- [ ] **CAL-04**: Display channel type, ADC value, datum, reading + +### File Management + +- [ ] **FILE-01**: List CSV files in flash memory +- [ ] **FILE-02**: View CSV file contents +- [ ] **FILE-03**: Navigate file list (scroll up/down) +- [ ] **FILE-04**: Delete CSV files +- [ ] **FILE-05**: Generate tidEDA formatted files + +### Backend + +- [ ] **BACK-01**: Flask backend running on Raspberry Pi +- [ ] **BACK-02**: Sensor data API endpoints +- [ ] **BACK-03**: Settings API (read/write) +- [ ] **BACK-04**: File management API + +## v2 Requirements + +Deferred to future release. Tracked but not in current roadmap. + +### Historical Data + +- [ ] **HIST-01**: Historical rainfall graphs (daily, weekly, monthly) +- [ ] **HIST-02**: Historical voltage graphs +- [ ] **HIST-03**: Date range selection for historical view +- [ ] **HIST-04**: Export data to CSV + +### Alerts & Notifications + +- [ ] **ALERT-01**: Configurable rainfall threshold alerts (Warning, Danger) +- [ ] **ALERT-02**: Configurable water level threshold alerts +- [ ] **ALERT-03**: Visual indicators for alert states +- [ ] **ALERT-04**: SMS notification on threshold breach + +### Advanced Network + +- [ ] **NETW-01**: Automatic retry on transmission failure +- [ ] **NETW-02**: Transmission queue status display +- [ ] **NETW-03**: Manual trigger for immediate transmission +- [ ] **NETW-04**: Transmission log/history + +### GPS Integration + +- [ ] **GPS-01**: Display GPS coordinates +- [ ] **GPS-02**: Manual coordinate entry (backup to USB GPS) + +## Out of Scope + +Explicitly excluded. Documented to prevent scope creep. + +| Feature | Reason | +|---------|--------| +| Third-party cloud integration | Direct server connection only per requirements | +| Mobile native apps | Web-first approach | +| Multi-station dashboards | Server handles aggregation | +| Real-time chat | Outside domain | +| OAuth authentication | Simple session-based auth sufficient for local device | + +## Traceability + +Which phases cover which requirements. Updated during roadmap creation. + +| Requirement | Phase | Status | +|-------------|-------|--------| +| DASH-01 | Phase 1 | Pending | +| DASH-02 | Phase 1 | Pending | +| DASH-03 | Phase 1 | Pending | +| DASH-04 | Phase 1 | Pending | +| DASH-05 | Phase 1 | Pending | +| DASH-06 | Phase 1 | Pending | +| DASH-07 | Phase 1 | Pending | +| DASH-08 | Phase 1 | Pending | +| DASH-09 | Phase 1 | Pending | +| UI-01 | Phase 1 | Pending | +| UI-02 | Phase 1 | Pending | +| UI-03 | Phase 1 | Pending | +| UI-04 | Phase 4 | Pending | +| UI-05 | Phase 4 | Pending | +| SETT-01 | Phase 1 | Pending | +| SETT-02 | Phase 1 | Pending | +| SETT-03 | Phase 1 | Pending | +| SETT-04 | Phase 1 | Pending | +| SETT-05 | Phase 1 | Pending | +| SETT-06 | Phase 1 | Pending | +| SETT-07 | Phase 1 | Pending | +| SETT-08 | Phase 1 | Pending | +| SETT-09 | Phase 3 | Pending | +| CAL-01 | Phase 1 | Pending | +| CAL-02 | Phase 1 | Pending | +| CAL-03 | Phase 1 | Pending | +| CAL-04 | Phase 1 | Pending | +| FILE-01 | Phase 2 | Pending | +| FILE-02 | Phase 2 | Pending | +| FILE-03 | Phase 2 | Pending | +| FILE-04 | Phase 2 | Pending | +| FILE-05 | Phase 2 | Pending | +| BACK-01 | Phase 1 | Pending | +| BACK-02 | Phase 1 | Pending | +| BACK-03 | Phase 1 | Pending | +| BACK-04 | Phase 2 | Pending | + +**Coverage:** +- v1 requirements: 41 total +- Mapped to phases: 41 +- Unmapped: 0 ✓ + +--- +*Requirements defined: 2026-03-12* +*Last updated: 2026-03-12 after initial definition* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md new file mode 100644 index 000000000..0005ab14d --- /dev/null +++ b/.planning/ROADMAP.md @@ -0,0 +1,85 @@ +# Roadmap: TCKRTUIYO - Rainfall Station RTU Web Interface + +## Overview + +This roadmap delivers a complete rainfall monitoring system running on Raspberry Pi with a 7" touchscreen kiosk display and remote HD access. The journey progresses from core sensor-to-display functionality (Phase 1) through data persistence (Phase 2), network transmission (Phase 3), to full remote access (Phase 4). + +## Phases + +**Phase Numbering:** +- Integer phases (1, 2, 3): Planned milestone work +- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED) + +Decimal phases appear between their surrounding integers in numeric order. + +- [ ] **Phase 1: Foundation & Kiosk UI** - Core sensor display on 7" touchscreen (port 8080) +- [ ] **Phase 2: Data Persistence & File Management** - CSV logging and file operations +- [ ] **Phase 3: Network Transmission** - Data transmission to myvscada server +- [ ] **Phase 4: Remote Access** - Full HD remote interface (port 9090) with authentication + +## Phase Details + +### Phase 1: Foundation & Kiosk UI +**Goal**: Real-time rainfall and sensor data displayed on 7" touchscreen kiosk (port 8080), with settings and calibration access +**Depends on**: Nothing (first phase) +**Requirements**: DASH-01, DASH-02, DASH-03, DASH-04, DASH-05, DASH-06, DASH-07, DASH-08, DASH-09, UI-01, UI-02, UI-03, SETT-01, SETT-02, SETT-03, SETT-04, SETT-05, SETT-06, SETT-07, SETT-08, CAL-01, CAL-02, CAL-03, CAL-04, BACK-01, BACK-02, BACK-03 +**Success Criteria** (what must be TRUE): + 1. User can view current rainfall readings (Today, Hourly, MAR Accumulated, Yearly Accumulated) on the dashboard + 2. User can view solar voltage and battery voltage with status indicator (HIGH/NORMAL/LOW) on the dashboard + 3. User can view current date/time (HH:MM:SS DD-MM-YYYY) and station ID on the dashboard + 4. User can view communication status (signal strength, connection status) and software version on the dashboard + 5. User can navigate between Dashboard, Settings, and Calibration menus via main menu + 6. User can access and modify station info, date/time, network settings, sensor thresholds, and ADC configuration + 7. User can view live ADC channel readings and reset rainfall counters in calibration view + 8. Dashboard updates automatically with real-time sensor data + 9. Touch interface responds with large touch targets (minimum 48px) optimized for 7" 1024x600 display +**Plans**: TBD + +### Phase 2: Data Persistence & File Management +**Goal**: CSV data logging to flash memory with file management UI +**Depends on**: Phase 1 +**Requirements**: FILE-01, FILE-02, FILE-03, FILE-04, FILE-05, BACK-04 +**Success Criteria** (what must be TRUE): + 1. User can view list of CSV files stored in flash memory + 2. User can navigate file list (scroll up/down) to find specific files + 3. User can view contents of selected CSV files + 4. User can delete unwanted CSV files from flash memory + 5. User can generate tidEDA formatted files for data transmission +**Plans**: TBD + +### Phase 3: Network Transmission +**Goal**: Automatic CSV data transmission to myvscada server with protocol configuration +**Depends on**: Phase 2 +**Requirements**: SETT-09 +**Success Criteria** (what must be TRUE): + 1. User can configure server connection settings (FTP, SCP, SFTP, or WebDAV protocol) + 2. System transmits CSV data files to configured myvscada server + 3. Transmission status is visible in the UI +**Plans**: TBD + +### Phase 4: Remote Access +**Goal**: Full HD remote interface on separate port (9090) with authentication +**Depends on**: Phase 3 +**Requirements**: UI-04, UI-05 +**Success Criteria** (what must be TRUE): + 1. User can access the system remotely via browser on port 9090 with full HD (1920x1080) responsive layout + 2. User can log in with credentials to access the remote interface + 3. User can log out from any page in the remote interface +**Plans**: TBD + +## Progress + +**Execution Order:** +Phases execute in numeric order: 1 → 2 → 3 → 4 + +| Phase | Plans Complete | Status | Completed | +|-------|----------------|--------|-----------| +| 1. Foundation & Kiosk UI | 0/1 | Not started | - | +| 2. Data Persistence & File Management | 0/1 | Not started | - | +| 3. Network Transmission | 0/1 | Not started | - | +| 4. Remote Access | 0/1 | Not started | - | + +--- + +*Roadmap created: 2026-03-12* +*Requirements coverage: 41/41 v1 requirements mapped* diff --git a/.planning/STATE.md b/.planning/STATE.md new file mode 100644 index 000000000..b1a075e82 --- /dev/null +++ b/.planning/STATE.md @@ -0,0 +1,63 @@ +# Project State + +## Project Reference + +See: .planning/PROJECT.md (updated 2026-03-12) + +**Core value:** Real-time rainfall and environmental sensor monitoring with automatic data transmission to myvscada server +**Current focus:** Phase 1: Foundation & Kiosk UI + +## Current Position + +Phase: 1 of 4 (Foundation & Kiosk UI) +Plan: Not yet planned +Status: Ready to plan +Last activity: 2026-03-12 — Roadmap created + +Progress: [░░░░░░░░░░] 0% + +## Performance Metrics + +**Velocity:** +- Total plans completed: 0 +- Average duration: N/A +- Total execution time: 0 hours + +**By Phase:** + +| Phase | Plans | Total | Avg/Plan | +|-------|-------|-------|----------| +| - | - | - | - | + +**Recent Trend:** +- No execution yet + +*Updated after each plan completion* + +## Accumulated Context + +### Decisions + +Decisions are logged in PROJECT.md Key Decisions table. +Recent decisions affecting current work: + +- [Research]: Selected Flask + Flask-SocketIO + Bootstrap stack for Pi Zero 2 W performance +- [Research]: Four-phase vertical slice approach based on dependency analysis + +### Pending Todos + +[From .planning/todos/pending/ — ideas captured during sessions] + +None yet. + +### Blockers/Concerns + +[Issues that affect future work] + +None yet. + +## Session Continuity + +Last session: 2026-03-12 +Stopped at: Roadmap creation complete +Resume file: None