Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARASAAC offline support #1323

Closed
shayc opened this issue Dec 19, 2022 · 1 comment · Fixed by #1321
Closed

ARASAAC offline support #1323

shayc opened this issue Dec 19, 2022 · 1 comment · Fixed by #1321
Assignees

Comments

@shayc
Copy link
Collaborator

shayc commented Dec 19, 2022

Feature

Download and use ARASAAC symbol-set locally (on device - works offline)

Technical description

The symbols will be provided via cboard-api, the entire zipped file weighs ~280MB, we should probably split it into smaller parts since unzipping in the browser takes between a couple of seconds to minutes depending on the file size and device.

Unzipping should be done async to avoid blocking the UI, need to verify if jszip and/or create-react-app supports Web Workers API.

Storage should be done with IndexedDB API.
A new mechanism for displaying images from IndexedDB (board / image search).
Since searching for images will be done on the client, we need an index (json) of all ARASAAC images and their names in all the languages we support.

Notes

  • IndexedDB size limit on different browsers? seems like 1GB per origin at the very least ref
  • idb is a nice package for working with IndexedDB.
  • does jszip has WebWorker support?
  • how do we manage interrupted downloads (to avoid re-downloading the same package when resuming)
  • need an index of all symbols and their names (also localization if we want search to work in other languages)
@martinbedouret
Copy link
Collaborator

@shayc I have added a couple of scripts to gather symbols and data from the ARASAAC API. Here's the complete package https://cboardgroupqadiag.blob.core.windows.net/arasaac/arasaac.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants