Skip to content
This repository has been archived by the owner on Jul 31, 2019. It is now read-only.

Architecture of Autocomplete #2

Open
2 of 3 tasks
Istar-Eldritch opened this issue Jul 18, 2017 · 3 comments
Open
2 of 3 tasks

Architecture of Autocomplete #2

Istar-Eldritch opened this issue Jul 18, 2017 · 3 comments
Assignees

Comments

@Istar-Eldritch
Copy link
Contributor

Istar-Eldritch commented Jul 18, 2017

  • Separation of concerns
  • Interfaces for request & Response
  • Errors and exceptions
@Xhark-Blues
Copy link
Contributor

Xhark-Blues commented Jul 18, 2017

- Separation of concerns:

It will be separated into two services:

  • Huginn: It will implement the logic to resolve what should be autocompleted base on the current state of the text in the search box.

  • Muninn: It will storage all the vocabularies and reply with a list of possible words within each vocabulary base on a string. The implementation of the autocompletion method will be configurable.

    • Vocabularies identified so far:
      • Diseases
      • Assay type
      • Technology
      • Tissue type

- Interfaces for Request & Response:

It will work as a single service and respond to the following pattern and payload:

  • Muninn:

    • Interface:
      • action.{vocabulary}.autocomplete
      • action.autocomplete
      • Request:
        • payload: {prefix: string, limit?:number}
      • Response:
        • {vocabulary:string[], vocabulary:string[], ...}
  • Huginn:

    • Interface:
      • action.sugest
      • Request:
        • payload: {tree: Node}
      • Response:
        • string[]

- Errors and exceptions:

  • Muninn:
    • Lists not created on redis.
    • Wrong payload.
  • Huginn:
    • No node flagged as autocomplete:true on the tree.
    • Wrong payload.

@Istar-Eldritch
Copy link
Contributor Author

Can we identify potential errors and exceptions?

@Istar-Eldritch
Copy link
Contributor Author

@Xhark-Blues we need to add payload validation and error handling to the service.

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

No branches or pull requests

2 participants