Page MenuHomePhabricator

Interaction Timeline MVP
Closed, ResolvedPublic

Description

Requirements

  • A GUI of some sort that accepts the following parameters:
    • username 1
    • username 2
    • wiki (e.g. en.wikipedia)
    • start date
    • if any of the required parameters are not included, display an error message. browser alert or text by the input box.)
  • On submit, the timeline should be generated. (Either on the same page or a new page, whatever's easiest.)
    • Chronological list (oldest at the top) of all edits to all commonly-edited pages
    • Should show the first 500 edits, beginning on the provided start date
    • Vertical line running down the middle of the page
    • Left column shows edits by username 1, Right column shows edits by username 2
      • Usernames should appear above the column, should be links to their userpage on the provided wiki (or maybe the X-Tools lookup?)
    • Each 'edit' should be in a box, containing:
      • Page name (linked to the page)
      • Full edit summary
      • Link to the diff (opens in new tab)
      • Timestamp (linked to the edit revision)
    • When the timeline alternates from user 1 to user 2 (or vice versa) show the "N time between interactions"
      • Use a library to perform human-readable calculation of seconds, minutes, hours, or days.
    • If the date range parameters are provided, only shows the edits between the ranges.
      • The definition of "commonly edited" should be lifetime. (For example, if User:A edits "Donald Duck" on January 1, 2017 and User:B edits "Donald Duck" on February 1, 2017 and a user queries all edits from February 1 to February 15 2017, User:B's edit should show on the timeline.)
  • This tool needs to be easily accessed by our team and selected users we want to share it with. Expect a max load of ~10 simultaneous users. This can be hosted on toollabs or elsewhere. Whatever's easiest.
  • The tool should be able to load very complicated scenarios — some users have been active for 16 years. The tool should either fail gracefully or paginate.

Wireframes

https://upload.wikimedia.org/wikipedia/commons/b/b8/Interaction_Timeline_%E2%80%94_second_draft_wireframes.png


Sub-tasks
To be created after estimation

  1. Establish architecture for Timeline MVP — "Hello world" create repo, set up, decide on libraries — 5
  2. Build GUI for inputs — 4 input boxes, no bells/whistles, — 3
  3. Gather edits in chronological order (unformatted) — make API requests based on form fields, calculate which pages to include, visible just to debug, create architecture to gather the API data and generate what we want, unit tests — 5
  4. Style the vertical Timeline layout — 5
  5. Show "N time since last interaction" calculations — 3

Event Timeline

dbarratt claimed this task.
dbarratt moved this task from Ready to Done on the Anti-Harassment (AHT Sprint 8) board.