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.
|
||||
|
||||
# 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 | |
|
||||
| --- | --- | --- | --- |
|
||||
| CQ | | | FE |
|
||||
| SE | | | CQ |
|
||||
| | CQ | WS | |
|
||||
|
||||
## Explanation
|
||||
|
||||
SS = Summer Solstice,
|
||||
CQ = Cross Quarter,
|
||||
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`.
|
||||
An example is Samhein which is typically November 1.
|
||||
|
||||
# Components
|
||||
|
||||
## 1. Front End
|
||||
|
||||
Developer: Hyperling
|
||||
|
||||
Language/Framework: Flutter
|
||||
|
||||
### Description
|
||||
|
||||
### 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
|
||||
|
||||
|
||||
@@ -46,14 +72,37 @@ Language/Framework: Flutter
|
||||
|
||||
### Requirements
|
||||
|
||||
### Test Cases
|
||||
|
||||
## 3. Weather Fetcher
|
||||
|
||||
### Description
|
||||
|
||||
### Requirements
|
||||
|
||||
### Test Cases
|
||||
|
||||
## 4. Response API
|
||||
|
||||
### Description
|
||||
|
||||
### 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