[Previous commit was merged back onto main, dev did not work (as expected).] Reorganize and continue adding details.

me committed 2026-08-12 16:34:25 -07:00
1 parent c30314855f
commit d58b40946b
1 file changed
+61 -12
+61 -12
@@ -2,14 +2,25 @@
To allow users to enter up to 8 locations based on zip codes or lat/long and have the highs and lows display on a Celtic Wheel type layout based on the movement of the sun and seasons of the year. To allow users to enter up to 8 locations based on zip codes or lat/long and have the highs and lows display on a Celtic Wheel type layout based on the movement of the sun and seasons of the year.
# Components
## 1. Front End
Developer: Hyperling
Language/Framework: Flutter
### High-Level Description
Simple UI with a clock-like display.
8 clickable pie wedges allow the user to choose a location for weather to be fetched.
| | SS | CQ | | | | SS | CQ | |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| CQ | | | FE | | CQ | | | FE |
| SE | | | CQ | | SE | | | CQ |
| | CQ | WS | | | | CQ | WS | |
## Explanation
SS = Summer Solstice, SS = Summer Solstice,
CQ = Cross Quarter, CQ = Cross Quarter,
FE = Fall Equinox, FE = Fall Equinox,
@@ -26,18 +37,33 @@ The day is an estimate which typically actually spans between the 21st and 24th.
Cross quarters are calculated to be `month = (3*X)-1`, `day = 1`. Cross quarters are calculated to be `month = (3*X)-1`, `day = 1`.
An example is Samhein which is typically November 1. An example is Samhein which is typically November 1.
# Components
## 1. Front End
Developer: Hyperling
Language/Framework: Flutter
### Description
### Requirements ### Requirements
#### Pages
1. Main Page
- Clock-like interface which has a pointer hand going towards the current date.
- 12:00 is summer cross quarter, August 1.
1. Location Entry
- Opens when a pie wedge is clicked.
- Allows the user to enter a zip_code OR lat_num + long_num. Not both.
- Allows the user to enter a location_nickname for local use only.
- Saves these fields in simple cache. Data stays local.
#: 1. Settings? [TBD: Maybe a future version? KISS for now.]
### Test Cases
1. App opens and displays any previously entered locations.
- Screenshot of app
1. App loads weather data, choosing the DB cache first.
1. If the DB is down, app accesses weather API directly.
- Take down the DB, or put in an incorrect URL/port.
- Open app and note a few temps and the last_update_date.
- After the update takes place, note the new temps and last_update_date.
## 2. Database ## 2. Database
@@ -46,14 +72,37 @@ Language/Framework: Flutter
### Requirements ### Requirements
### Test Cases
## 3. Weather Fetcher ## 3. Weather Fetcher
### Description ### Description
### Requirements ### Requirements
### Test Cases
## 4. Response API ## 4. Response API
### Description ### Description
### Requirements ### Requirements
Handles request from frontend devices, such as:
```json
{
"locations": [
{ "type": "zip", "zip": "47715" },
{ "type": "coords", "lat": "-36", "long": "111" },
{ "type": "zip", "zip": "87519" },
{ "type": "zip", "zip": "85743" },
{ "type": "coords", "lat": "-35", "long": "110" },
{ "type": "coords", "lat": "-37", "long": "112" },
{ "type": "zip", "zip": "86004" },
{ "type": "zip", "zip": "86001" },
],
}
```
### Test Cases