Skip to content

Latest commit

 

History

History
149 lines (137 loc) · 9.43 KB

todos.org

File metadata and controls

149 lines (137 loc) · 9.43 KB

TODOs

Visuals/UX Improvements

When clicking on ‘next email’, ensure that extension window

size does not change (ie. make a fixed window size that can accomdate the buttons and text)

Implement initial screen that gives the user the choice of how

many email threads they want to review and label

Implement review screen that displays one email thread at a time

with buttons that enable the user to navigate to the next email thread

Make the ‘next’ button turn into a ‘finish’ button when the user

has reviewed up to the max review count for a given review session

Implement finished screen that tells the user how many emails

they reviewed and gives them the option to start a new review session

apply auto-fade after 5 seconds to the notification messages such as ‘label already applied’ etc.

Move buttons and question to the bottom of the screen

Add a hover on which the subject text expands to show the full subject

(not a tooltip, but the actual text itself)

Add a bit of padding between fields

Increase the font size of the fields

Add mouse pointer cursor to all buttons

Core/Critical Functionality

Implement a logout button which will clear the user’s token and

reset the extension to its initial state so new user can log in

Test w/ an email account that has zero emails, 1 email and 6 emails, to confirm

that the extension works as expected in all cases

Make sure that the max reviews is never greater than the number of threads

returned by the API

Make sure that reviews are capped when there are no more threads to review

(i.e. the end of the inbox has been reached)

Check if there are any missing labels on extension load, and if so, create them

Add check to initial load from state that checks for stale state, and has

the user get a fresh token if the state is stale

Prefetch the first N threads in the user’s inbox so that they can be

displayed in succession w/o having to make extra API calls mid-review

Pass reviewedCount back to the setup screen upon review completion to display

the number of emails reviewed in the last review session

Implement a ‘skip’ button that moves to the next email w/o applying any labels

Implement pagination for email message retrieval so that, if there are

less than the maxReviewCount threads returned, more threads can be retrieved and the user can successfully review the maxReviewCount threads (or less if there are no more unreviewed threads left, i.e. end of inbox reached), see https://developers.google.com/gmail/api/reference/rest/v1/users.messages/list (specifically pay attend to the ‘pageToken’ parameter and ‘resultSizeEstimate’)

Add label to currently displayed email thread

Display email counter for number of email threads processed

Display first email thread on “review start”

Remember in context/storage the current email thread being

looked at so that if the extension is closed and reopened, the same email as before is still being displayed

Look into localstorage versus the current recommended alternative

to localstorage, list pros/cons

Consistently display the body text of the email thread in the extension

window including emails that are written in HTML as well as plain text

Add a ‘next’ button that will display the next email thread in the list

Add a ‘reset’/’quit’ button that reinitializes extension to its initial state

Cap a review session to the max reviews count

Store for each email thread reviewed a list of labels that will be applied

to the email thread once the review session is over (i.e when the user clicks ‘finish’ or ‘quit’)

apply labels at the end of the review session

enable the user to skip already reviewed emails

Add pop-up ‘toast’ notification to setup screen that tells the user how many

emails they successfully reviewed in the last review session (non-persistent)

auto apply the reviewed label once an email is viewed

Implement a ‘Finish and Save Early’ button that will end the review session

and apply the labels to the email threads that were reviewed up to that point

Implement the user ability to be able to conditionally skip reviewing

of emails that already have the ‘Reviewed’ label applied

Add two more buttons to the review screen that say ‘yes’ and ‘no’ to

answer a question about the email thread being displayed

Display the initial question for tree swipe on the review screen

for each email thread

Implement the ability to go down the decision tree for each email thread

Implement a ‘Quit w/o Saving’ button that will end the review session

and not apply any labels to the email threads that were reviewed

count number of returned threads, use MIN of user selected maxReviewCount

and numOfReturnedThreads as the new maxReviewCount

Development/Publishing Necessities

Have the ‘next’ button not call any APIs and instead only display the next email thread in the list

Implement OAuth 2.0 token refresh logic (is this necessary, or does it happen automatically?)

Learn how to publish this extension to the Chrome Web Store

Publish project on Google Cloud

Package as a zip to submit to the Chrome Web Store

Publish this extension to the Chrome Web Store

Bugs

When the user starts reviewing w/ skipping toggled on and there are less than

maxReviewCount threads in the inbox, the user does not see an accurate number of threads that they will be able to review

When loading the extension for the first time, the loading spinner does not

display (but it should) for while the extension is adding the necessary labels and/or loading initial emails, etc.

When loading the extension in an email inbox that has less than 5 email threads,

the extension still displays 1 of 5 emails (should display 1 of total thread count)

When refreshing the extension, sometimes the toggle gets reset (but it shouldn’t)

When clicking on ‘next email’, the extension window size changes (don’t want this behavior)

When clicking on ‘next email’, sometimes threads appear to be skipped (this is not what I want to happen)

When attempting to display html emails, they are not yet able to be displayed in the extension (but I want to display plain text versions of the body text)

Some subjects are not yet correctly parsed and displayed (see email from Interfusion)

When answering questions, no/yes buttons are shown at leaf nodes (where they should not be no/yes buttons)

Japanese emails are not rendered correctly yet

Currently the extension requests a new auth token every time an action is taken. Instead,

the extension should request a new auth token only when the current token expires. This can be done w/ a refresh token or by checking the expiration time of the current token. Google typically returns a token expiration time in the response to the token request. A day before the token is to expire, we can request a new token and update the current token. This would be a critical fix for the extension to pass the review process.

Enhancements

Implement keyboard shortcuts for yes/no/apply label/redo/quit buttons

Use thread snippet to display body preview text

implement “rm labels” convenience function that removes all of the labels

associated with treeswipe for a given number of email threads (by default 10)

Move clear button to setup screen

Implement the removal of all labels associated with the extension via the clear button

Save the state of the current question in the state object so that if the user

closes the extension and reopens it, the same question is displayed

check on extension load that all the necessary labels are present, and if not,

create them, then save the fact that labels have been created in global state object

Implement a custom ‘toast’ notification system that will display messages

to the user in the extension window

remove logic that checks to see if labels exist before applying them and

conditionally creates new labels, because we have already ensured that all the labels exist when the extension loads

Implement a ‘Back’ button that will allow the user to go back to the

previous email thread in the list

API to apply labels to multiple emails at once, and instead use labels as the keys, and the email IDs as the values in the idsAndTheirPendinglabels

tooltip/on-hover display of more info regarding what each label means as it

pertains to each question, e.g. “reference means that the item in question is something you might want to refer back to later, but isn’t itself an actionable item” (title attribute)

Enhance body text display to be AI NLP summarized

Next/Back ‘carousel’ buttons to navigate through email threads on the review screen

where the left and right margins themselves are tall vertical clickable areas that, on hover, display the right and left chevrons respectively

Stretch Goals

enable the user to input their own decision trees

enable hotkeys for answer questions