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
Sub-tasks
To be created after estimation
- Establish architecture for Timeline MVP — "Hello world" create repo, set up, decide on libraries — 5
- Build GUI for inputs — 4 input boxes, no bells/whistles, — 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
- Style the vertical Timeline layout — 5
- Show "N time since last interaction" calculations — 3