Skip to content

Task specs

UMjp edited this page Jun 1, 2023 · 11 revisions

Getting started

  • Create your own fork of this repo
  • Look at the other documentation in this Wiki
  • We will use Git functions (like Issues and the Project tools) to keep track of tasks, progress, issues, etc. Please make sure you understand how these functions work.

Mockup of MVP

Figma file

Query Improvement Interface

When the MVP is Complete, the following demo will be possible

  • Initial state: a pre-popualted starter query with some resulting posts having pre-populated user labels
    • subreddit:science autism AND vaccine
  • User clicks "submit"
  • Query is run against reddit with results shown in results pane (only "Newly matched" results exist at this point)
  • User labels more of the results
  • User modifies the query
    • subreddit:science (autism OR asd) AND vaccine
    • query diff is shown to the user
  • Modified query is run against reddit; results shown in results pane ("Newly matched" plus possibly "Previously matched" and "Newly removed")
  • User labels more of the results
  • User saves the modified query
  • User modifies the query (starting from modified)
    • subreddit:science (autism OR asd) AND vaccine AND (NOT hoax)
  • Query is run against reddit; results shown (now there can also be posts in category "Unmatched (but maybe should be)"; these are things from the original query that were "Newly removed" by the second query, which was saved, and which are also not retrieved by the latest query)

First Task: Fake the Reddit API and Make the Front End Work

  • Produce an interface look and feel based on the mockup
  • Create a mock reddit API that responds to only three canned reddit query strings, which I'll refer to as "Query", "Modification 1", and "Modification 2"
    • For each, have the mock API return a static list of reddit post IDs
      • run the three mock queries once against the reddit API to get lists of first, say, 50 results for each and save these for the demo
    • Have the static list for "Modification 1" include some new IDs not returned for "Query" and have it exclude some that were returned for "Query". Similarly for Modification 2.
  • Use the reddit oEmbed to display the query results
  • For initial state, have initial "Query" and some labels (+ or -) for some of the posts returned by that query
  • Provide documentation
    • Write compilation and deployment steps needed for someone to run the demo, as a README.md at the top level of the directory where you put your code.
  • Submit a pull request

Second Task: Get it Working with the real reddit API

  • Sign for a reddit api key
  • Get oauth working to allow queries from browser
    • may require using nextJS or similar to act as a server responding to oauth requests from reddit
  • Use the reddit API to run queries
  • See below for other useful Reddit links
  • Save query results in a local front-end cache for the duration of the session
  • Don’t worry about saving any results between sessions because the demo restarts whenever you do a new session

Useful Reddit URLs