You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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