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

Ensure GraphQL query support for all front-end needs #43

Open
reefdog opened this issue Feb 12, 2019 · 0 comments
Open

Ensure GraphQL query support for all front-end needs #43

reefdog opened this issue Feb 12, 2019 · 0 comments
Assignees

Comments

@reefdog
Copy link
Contributor

reefdog commented Feb 12, 2019

This will be written in prose and pseudo-code, a genre known as English Major's Spec.

First, a representative example of one of the more common states of the interface. (To explore all states that will be discussed below, check out the interactive prototype.)

dashboard

  • Populating the interface chrome won't require anything from the database, unless we want facets (entity types, time intervals, and available channels) to be database-driven; those could safely be static, I think, because of how rarely they change, but whatever.
  • The Entity List and Graph will need an Apollo subscription, scoped by the facets, that provides:
    • Entity labels
    • Entity counts, either as a raw series of timestamps, or as pre-summarized counts based on overall interval selected. (E.g., if the user is in "4 hour" view, we'd want a graph of entity appearance each… 30 minutes? 15 minutes? Whether the front-end arranged this by getting a list of each entity's timestamped appearance from the API, or a count summary for each x-axis interval, is up for discussion.)
    • Note: Summarizing counts into total and recent can be done on the front-end.
  • The Live Transcript will need an Apollo subscription, scoped by facets, that provides:
    • Timestamped full-text sentences
    • Entities inside sentences marked up in such a way that React can hydrate them into components
  • The initial Entity Detail display will need full details of the entity that was selected in the list, graph, or live transcript, scoped by the facets:
    • Timestamped full-text sentences
    • Related entities that appear in those sentences
    • Entities inside sentences marked up in such a way that React can hydrate them into components (including related entities)
    • Sentences flagged as "likely claims"
  • Drilling into a single entity appearance will reveal the surrounding transcript context (standard GraphQL query, not a subscription), which will be:
    • Timestamped list of sentences (some number in both directions of the appearance)
    • Ability to fetch earlier/later sentences as the user scrolls
    • Entities inside sentences marked up in such a way that React can hydrate them into components
slifty added a commit that referenced this issue Mar 14, 2019
This follows the first few steps in the [Apollo
Documentation](https://www.apollographql.com/docs/graphql-subscriptions/subscriptions-to-schema.html)
for adding subscriptions to graphql.  It sets up the schema to handle
subscriptions and also creates the very initial integration with the
PubSub implementation baked into the graphql-subscriptions library.

As noted in that library, it is only appropriate for demos, not
production.  We will eventually want to replace it with a more robust
PubSub implementation.

Issue #44
Issue #43
slifty added a commit that referenced this issue Mar 14, 2019
This follows the first few steps in the [Apollo
Documentation](https://www.apollographql.com/docs/graphql-subscriptions/subscriptions-to-schema.html)
for adding subscriptions to graphql.  It sets up the schema to handle
subscriptions and also creates the very initial integration with the
PubSub implementation baked into the graphql-subscriptions library.

As noted in that library, it is only appropriate for demos, not
production.  We will eventually want to replace it with a more robust
PubSub implementation.

Issue #44
Issue #43
slifty added a commit that referenced this issue Mar 14, 2019
This follows the first few steps in the [Apollo
Documentation](https://www.apollographql.com/docs/graphql-subscriptions/subscriptions-to-schema.html)
for adding subscriptions to graphql.  It sets up the schema to handle
subscriptions and also creates the very initial integration with the
PubSub implementation baked into the graphql-subscriptions library.

As noted in that library, it is only appropriate for demos, not
production.  We will eventually want to replace it with a more robust
PubSub implementation.

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

No branches or pull requests

2 participants