adventurelookup-frontend
adventurelookup-frontend copied to clipboard
Search middleware skeleton
Search is a major component of Adventure Lookup. The project will need middleware between the UI and backend APIs to coordinate requests and provide fast responses from caches.
This infrastructure will support all the different UIs users may use to search that may be built:
- Simple search
- Advanced search with a query builder UI
- Advanced search with a parser UI
Tasks:
- [ ] Define the schema for query messages to be sent to the server. Consider https://brehaut.net/media/files/search-proto/ as a starting point.
- [ ] Skeleton web worker to act as middleware (dummy data initially, then pass through):
- [ ] Build task for worker scripts.
- [ ] Class to wrap up interacting with the worker for UI code to consume.
- [ ] Messages that the middleware needs to support:
- [ ] Search results for a given query.
- [ ] All tags for a given tag stem across all facets.
- [ ] All tags for a given tag stem across a specific facet.
- [ ] All facet names for a given facet name stem.
- [ ] Cache class for long term tag / facet storage.
- [ ] Initally a dummy implementation.
- [ ] IndexedDB datastore, probably using dexie.js as the API to the DB.
A later task will cover advanced features of caches and middleware such as 'sound alike' searches and synonyms.
CC: @brehaut