Toolhub/Progress reports/2021-02-26
Report on activities in the Toolhub project for the week ending 2021-02-26.
Faceted search
editLots of good progress has been made on faceted search in the past week! We have merged these patches:
- gerrit:664380 dev: Add elasticsearch container
- gerrit:664677 search: mirror toolinfo records into Elasticsearch
- gerrit:665455 search: move code into new app
- gerrit:665456 api: add faceted search endpoint for tools
- gerrit:666523 api: Update /api/search/tools/ for UI implementation
There is also a work in progress patch at gerrit:666524 which implements a user interface for using all of this new backend plumbing. The current patch is functional, but in need of additional automated tests and design review.
Some might wonder how this moved so quickly. Bryan credits it to a few things:
- The libraries that we have found for handling mirroring database models into Elasticsearch and exposing Elasticsearch queries via django-rest-framework mostly "just worked".
- Years of dreaming about how the UI for this could work made Bryan highly motivated to see if he could actually implement something.
- Once he started, Bryan could not stop thinking about 'solving' the UI problem--to the point that reading a book or watching tv instead of coding was not possible. :)
Direct tool registration
editSrishti is back to work on the UI components for creating a new toolinfo record via the API. One issue that she identified was a need to have the OpenAPI schema description for the expected POST payload available to code in the UI. Bryan has attempted to make this possible with helper functions wrapping the existing swagger-client library. Srishti is now trying to use this helper code to evaluate its utility. Ideally this will lead to design patterns that we will be able to reuse for other input intensive screens in the future.
Wrap up
editThe unexpected speed of getting a working UI for search is encouraging for our quarterly goals. We still have quite a bit of work left to implement user interfaces for the toolinfo registration, editing, and history APIs, but with the vast majority of backend work to support these done Bryan can start helping more with UI work in the last month of the quarter.