src a Python package (sticky_pi_api) that defines the API and its client.
Complete documentation of the client and
the api is available on our website.
server a docker-based server, deployed using docker-compose. Complete documentation here. Contains the following services:
db the database (MySQL)
api a flask server that instantiates our API and routes entry points
rshiny a webtool to visualise the data
s3 an (optional) s3 server to store and serve resources such as images (can set a remote S3 server instead)
nginx an server to route trafic, set subdomains, etc
Currently, when a project selected, image fetching (when user goes to Images, Data tabs) is simply done by feeding date ranges from the project series metadata table into the api_get_images() general function for scoping by date range.
However, there may be images and metadata within the date ranges of a project that are not actually part of the project.
Add a "delete" button similar to the current "+" button for adding a new series row.
Can tie button click to a function that deletes the selected row of the underlying table in state.
if we cache the md5sum computations wioth joblib, using filesystem backend, this results in at least thrice the number of files whic could be limiting (e.g. we have file number limis to 500k on ComputeCanada ๐คฆ )
after clicking opened(in modal) thumbnail and successfully downloading image from server(ComputeCanada) link, browser console: this.$socket is null, modal buttons don't work and cannot re-invoke any new thumbnail modals/popup from timeline anymore
R Shiny Apps Greys Out and Hangs
perhaps some safety feature of Shiny site-serving: grey out when unrecognized interruption to connection, e.g. visiting external link
-> maybe HTML element external links will all break Shiny webapp? for any downloads can only use Shiny's download buttons?
-> site also grey out when invalid user/login, but can't interact with anything
time curl --user XXXXXXX:XXXXXXXXXXX -X POST -H "Content-Type: application/json" -d '[{"start_datetime": "2020-06-01_00-00-00", "end_datetime": "2030-01-01_00-00-00", "device": "%"}]' https://api.sticky-pi.com/get_image_series/image > /dev/null takes 20s on the host that is for ~75k images (URL pre-cached)
ATM, when editing a cell with an erroneous value e.g. "a" for a numerical column, the server API responds with an error, and shiny crashes with no explanation. We could:
Check format before sending
Display an error message when an unknown server error prevented cell edition
After editing a cell of the projects table, the new value is shown (also after clicking away on the side), until the user interacts with any of the DataTable widget. Then, the app seems to refetch the table and the original value at startup is shown again.