generated from me/template-mit
[Previous commit was merged back onto main, dev did not work (as expected).] Reorganize and continue adding details.
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
|
||||||
Reference in new issue
Block a user