-
Notifications
You must be signed in to change notification settings - Fork 22
Goals and Features
According to an AAC expert the following requirements for a communication grid are important:
- The grid should be usable on a PC and on a tablet.
- It should be easy to transfer grids between devices (e.g. PC <-> Tablet).
- Symbols/images in the grid should be resizable and easy to import from external sources.
- It should be easy to change/adapt the grid or create a new one.
The grid will be implemented as web application running in a browser. Therefore requirement (1) will be easy to fulfil, because the web application will run on any device or operating system (PC, Tablet, Smartphone, Windows/Linux). However using a web application raises some questions:
- Where to host the app/website?
- How to enable offline usage of the app (without internet connection)
- How to transfer grids from one device to another?
The first prototype will be hosted on github pages: https://asterics.github.io/AsTeRICS-Grid/package/static/
In the future hosting on an own server with a database (namely CouchDB) in background is thinkable.
To make the grid usable offline there are two requirements:
- The webapp (website) should be cached somehow to can be used without internet connection.
- The data representating custom grids must be stored in an offline accessible way.
For (1) a technology named AppCache will be used. It allows to tell the browser to cache a whole page for offline usage, therefore after visiting the online version of the AsTeRICS Grid once, it will be also available offline, if navigating to the same address using the same browser. See the current version on Github Pages to try it.
The custom grid data (2) is saved using PouchDb, a wrapper for a browser technology called IndexedDb. IndexedDB allows to store big amounts of data in an browser-internal database and therefore is a good fit for our requirement to store the data for the custom grids offline. PouchDb also is able to synchronize with an external CouchDb, which maybe will be implemented some time in order to provide automatically synchronization of grids accross devices (meeting requirement 2+3).
There will be two ways to transfer grids: First using PouchDb and an external CouchDb, like described in the last paragraph. Second it will be possible to export all grids to a file and import this file on another device/browser. This is possible by serializing all contents of the in-browser PouchDb to a file using the PouchDB addon pouchdb-replication-stream. For importing an exported database from file the addon pouchdb-load is used. These functionalities can be tried by using the export button and the file upload on the current prototype on Github pages.
The grid will be usable as basic AAC grid directly in the webapp without any other needed installed programs. However it will also be possible to connect the grid to AsTeRICS and trigger certain actions within a model. Therefore there will be these types of actions that is performed on selecting an grid item:
- Speak a word/text (default behavior)
- Send data to an input port in an AsTeRICS Model
- Trigger an action in an AsTeRICS Model
- Trigger an action previously defined/learned in AsTeRICS Ergo Environmental control (this is basically an abstraction of 2/3)