-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTODO.txt
More file actions
180 lines (175 loc) · 9.17 KB
/
TODO.txt
File metadata and controls
180 lines (175 loc) · 9.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
v1.0
- colorpicker default listed colors revised (high contrast)
- bubbles' content revised/customizable
- journey log created, content revised
- consider tracks from various sources (SkyDemon, ForeFlight, GeoTracker, Garmin5)
- consider place-name based waypoint selection (based on a public database)
- some edit messages go to the same session_id's (realtime showing of changes if app open in two windows)
v0.3
+ multiple maps (from multiple countries, 1 additional country introduced)
+ bugfix: server could not start when no map was downloaded
+ limit tile download to 3 simultaneous
+ bugfix: always left-top tile was drawn first
+ include tile png generation in the build process (commented out, because Koyeb build times out)
+ tile cache pre-generation included in main server as a background process
+ bugfix: invalid-step-value error was sent regardless of error condition
+ separate VFRFunctionRoute class from the rest (~geometry.py)
+ limit the session connections based on number of open sessions & visual feedback if no connection available
+ server setup moved into `api` package
+ waypoints/constraint points lon-lat editable (in degrees/minutes/seconds and decimal format) in step1
+ points lon-lat editable all steps, addable by lon-lat
+ best linear approximation for GPX export
+ optimize memory consumption during final image generation
+ limit the area of interest based on expected memory consumption
+ changed use_sample_weather setting to always_use_real_weather (can be set if annotation edit page also uses)
+ switch from WebSocket to Socket.IO for its fallback to long-polling capabilities
+ published routes on postgres (to not lose on redeploy)
+ review socket.io handlers for async friendlyness
+ solve all linting problems
+ bugfix: tracks with same name breaks program logic + can't add twice the same file before refreshing page
+ bugfix: annotations are also refreshed when clicking a non-point
/ bugfix: add annotation point -> server exception (not in list) - can't reproduce
+ bugfix: leg definition changes to dotted lines while changing function
+ bugfix: session limit handling was a mess + start connection with polling
/ bugfix: on server exception, frontend keeps the progress indication - can't reproduce
+ close route button on step 6
+ bugfix: waypoint update state fix for annotations
+ bugfix: added square root as known function + latex conversion error handling fixes
+ bugfix: increase socket.io frame limit
+ solved linting issues came up since last review
+ object storage for map tiles and pdfs to avoid regeneration on container sleep
+ add vor/radial/dme format as waypoints
+ set dme arc x-values
+ default/loaded route's date modified on load if earlier than now
+ non-closed routes
+ can add airports by name
+ can disable server side local caching
v0.2
+ landing page
+ memory optimizations for low-res map
+ separate data sending from image sending
+ instead of contextmanager, be explicit about figure release
+ instead of plotting the map, use Pillow based manipulation
+ send images as binary through socket (centralize receiving in frontend)
+ send smaller tiles through websocket (this will also be good for progress display)
+ bugfix: LOW_DPI dependent tiles coordinates
+ no contextmanagers for figures
+ session management: time to live for sessions in the session store (api/routes.py:_vfrroutes)
+ session management: session_id is always sent in http and ws requests (retreived from localStorage)
+ the same memory optimizations for waypoints map
+ bugfix: the last tiles (in a row, in a column) are stretched (of course: they are smaller, but this
is not considered)
+ the same memory optimizations for legs map
+ the same memory optimizations for annotations map
+ the same memory optimizations for tracks map
+ bugfix: LOW_DPI dependent VFRPoint transformations
+ bugfix: HIGH_DPI dependent VFRPoint transformations
+ memory optimizations for final image generation
+ binary transfer of final documents (PNG, DOCX)
+ introduced a resolution for this drawing (DOC_DPI)
+ background not drawn with matplotlib, but composited with PIL
+ background done with tiling (for tiles: bg_img.paste(get_tile(0, 0), (0, 0)))
+ cacheable tiles
+ overlay rendered into svg, frontend has 3 layers: map (canvas, tiles),
server_overlay (svg), client_overlay (canvas); figure released immediately by
SVGRenderer (this way map tiles will be uniform)
+ high resolution tiles are rendered according to fixed grid (this is
needed for uniform map tiles)
+ frontend clips on the side to avoid larger maps shown than requested
+ bugfix: doc generation was not updated to fixed grid
+ tile cache
+ server caches to disk and checks before creating
+ change to http get for tiles, frontend uses http cache for tiles
+ bugfix: map download needed to be put at an earlier stage
+ bugfix: api endpoint rewrote by angular to /frontend/api/..., changed to absolute url
+ mapedit: moving amount is not decreasing when scaled
+ annotations: during edit, no realtime data is downloaded, only during final generation
+ sample route is loaded from file instead of generating it in code (also tracks are included)
+ annotations: text overlay refreshed automatically after every edit (1-1,5s delay is tolerable)
and default to not show (wrongly) estimated bubbles
+ annotations: text is english + bugfix of prev commit
+ annotations: more precise bubble estimation
+ annotations: bubbles can be moved with mouse
+ add tooltips to buttons, no tooltip for app-header
+ remove unneccessary info (XY in map info panel)
+ double-click instead of middle button
+ mobile friendly: touch controls
+ bugfix: multiple constraint points, not editable?
+ calculation of final map size: area of interest never decreased, but
increased if some function point would go outside
+ bugfix: extent calculation directly after load (matrix and function does not exist yet)
+ save to cloud
+ save to cloud sanitizes file name, checks for max published routes
+ bugfix: edge case no waypoints -> extent calculation crashed + filename sanitization update
+ mobile friendly: responsive action pages (landing, step0, step6)
+ bugfix: window resize caused zoom change
+ bugfix: edit boxes not recreated on change (navigating with tab was impossible)
+ mobile friendly: responsive map page in step2
+ mobile friendly: responsive map page in step1
+ mobile friendly: responsive map page in step3
+ first attempt to render 'function_range' correctly
+ fullscreen button in header
+ mobile friendly: steps 1-3 correctly handles portrait/landscape instead of screen width
+ mobile friendly: responsive map pages (step4)
+ mobile friendly: responsive map pages (step5)
+ fullscreen size fixed (tables were over the screen because of the url-bar-scroll-needed hack)
+ if was zoomed-to-all before resize, keep this feature after (instead of keeping zoom level)
+ session management
+ caching of states per session to disk periodically, load it on startup
+ if there is an open route on server, in step0 we can continue with that
+ each communication in a session raises it's expiry date
+ communication & its visual feedback
+ give visual feedback if no route is open on the server for the current session
+ visual feedback on each page if no open route on server
+ progress indication while waiting for server
+ visual feedback if error between steps (or in any communication)
+ tile download moved out from drawing loop
+ bugfix: first & last of leg's points and annotations were deletable
+ bugfix: step3 icon buttons were misrendered
+ bugfix: step1 did not dim invalid lon-lat values
+ route editing
+ speed & name is modifiable in step 6
+ order constraint points by func_x automatically
+ bugfix: readonly mathedit does not show formula
+ edit "function_range" on leg page (maybe it could be automatic?)
+ proper error when no wind forecast
v0.1:
+ transition to LEG definition step (waypoints to legs conversion,
considering existing legs)
+ stepping refactor
+ legs
+ transferring leg definitions to frontend
+ transferring leg function matrices to frontend
+ drawing leg overlays (with hardcoded linear function)
+ editing leg functions
+ converting leg functions to evaluateable on frontend
+ converting leg functions to evaluateable on backend
+ draw the functions correctly
+ editable constraint points and x-values
+ bugfix of step 1: point moving did not work
+ bugfix of mapedit: resize observer does not reset top left corner
+ mapedit: zoom to all
+ docgen_sample.py works again
+ annotations
+ basic implementation
+ bubbles are switchable
+ add/move annotations with mouse (changing func-x-value)
+ server state is updated
+ annotation can be deleted
+ annotation can be created
+ minimum of 2 annotations included
+ tracks
+ upload track files and import it in state
+ assign colors to them
+ draw the full image with annotations and routes
+ final step: download generated files (docx, png, gpx, vfr)
+ download docx, png
+ download gpx
+ vfr format save-load
+ change dof before generation
+ auto reconnect websocket (or change to socket.io)
+ deploy
+ Dockerfile + koyeb.yaml
+ websocket path adjusted to deployed one
+ high and low resolution set from environment variable (instead if hardcoded)
+ bugfix: fixed local paths eliminated