tech-interview-handbook icon indicating copy to clipboard operation
tech-interview-handbook copied to clipboard

Grind 75 Feature Requests

Open yangshun opened this issue 3 years ago • 17 comments

This is a master issue to keep track of the Grind 75 features people are asking for:

  • Progress
    • [ ] Transfer progress between devices
    • [ ] Reset/clear all progress
    • [ ] Time when a question was mark as completed
  • Collapsing
    • [x] Collapse completed groups
    • [ ] #274
  • Others
    • [ ] Favoriting questions and having a page to display favorites

yangshun avatar May 16 '22 09:05 yangshun

can we add simple auth from firebase or facebook so that if we switch computer or clear application memory we can still keep our progress?

https://firebase.google.com/docs/auth/web/firebaseui would be a way to add this.

WDYT?

nanomosfet avatar May 19 '22 21:05 nanomosfet

can we add simple auth from firebase or facebook so that if we switch computer or clear application memory we can still keep our progress?

@nanomosfet Everything can be added, it's just how much engineering maintenance overhead using a database results in. The way TIH and Grind 75 are built is (almost) purely static pages, resulting in fast performance and low engineering maintenance.

I do think will be useful when there are more users. How about this, when your comment gets 50 upvotes I'll look into implementing it. I'll start with the first upvote.

yangshun avatar May 20 '22 07:05 yangshun

@yangshun Can we have a feature like export the list as CSV? I think that can be a temporary solution for @nanomosfet feature. People can download the csv and save it in google drive or whatever they like and keep track themselves.

avijit1258 avatar Jun 12 '22 22:06 avijit1258

JSON.parse(localStorage.getItem('1:completedQuestions')).join(',')

can get you the values of your completed questions as a CSV string if you do above in browser console when on grind 75 page

nanomosfet avatar Jun 13 '22 01:06 nanomosfet

it only gives the array of completed problems. not much helpful IMO. what I am looking for a csv which will have the problems link with week, time, difficulty so that we can simply use the csv to keep track and follow week-by-week. If we can download the list by customizing weeks and hours per week parameter, then download the csv that would be a helpful feature.

avijit1258 avatar Jun 14 '22 01:06 avijit1258

if you copy the output of

JSON.parse(localStorage.getItem('1:completedQuestions')).join(',')

paste it into a file. then on the blank machine do

localStorage.setItem('1:completedQuestions',JSON.stringify('outputString'.split(',')))

you should be able to recover your progress.

but i think what you're asking is for a CSV of detailed info about the problems

in my case i was able to do

localStorage.setItem('1:completedQuestions', JSON.stringify('two-sum,valid-parentheses,merge-two-sorted-lists,best-time-to-buy-and-sell-stock,valid-palindrome,invert-binary-tree,valid-anagram,binary-search,flood-fill,maximum-subarray,longest-palindrome,majority-element,contains-duplicate,implement-queue-using-stacks,longest-substring-without-repeating-characters,evaluate-reverse-polish-notation,middle-of-the-linked-list,linked-list-cycle,lowest-common-ancestor-of-a-binary-search-tree,balanced-binary-tree,reverse-linked-list,first-bad-version,ransom-note,climbing-stairs,add-binary,min-stack,maximum-depth-of-binary-tree,insert-interval,k-closest-points-to-origin,3sum,01-matrix,diameter-of-binary-tree,binary-tree-level-order-traversal,clone-graph,course-schedule,search-in-rotated-sorted-array,number-of-islands,rotting-oranges,combination-sum,coin-change,implement-trie-prefix-tree,product-of-array-except-self,validate-binary-search-tree,permutations,merge-intervals,lowest-common-ancestor-of-a-binary-tree,time-based-key-value-store,sort-colors,word-break,spiral-matrix,partition-equal-subset-sum,subsets,accounts-merge,binary-tree-right-side-view,longest-palindromic-substring,meeting-rooms,lru-cache,letter-combinations-of-a-phone-number,container-with-most-water,word-search,unique-paths,construct-binary-tree-from-preorder-and-inorder-traversal,trapping-rain-water,merge-k-sorted-lists'.split(',')))

and my progress was restored

nanomosfet avatar Jun 14 '22 15:06 nanomosfet

Hi @yangshun First of all, thank you for this awesome resource. This has been super helpful for my interview prep. I was looking through the repo to add the discussed feautres, but I could not find the Grind75 related files. Only thing that looked somewhat related was QuestionList.js in (/content/component) directory. Are files in a separate repo?

abepark26 avatar Jul 11 '22 04:07 abepark26

As a QOL request, would it be possible to add a timer to the page to say “you’re 9 days into your 4 weeks grind session”?

At some point, days just start to blend together and you can forget if you’re on day 10,11, or 12. Whereas if a timer was an option to be displayed on the page, that would make this easy to track.

The URL could change similar to how it does for custom Grind75 schedules, allowing this to be bookmarkable, in the example below, I use today (Aug-28-2022), which is 19,230 days since Jan 1 1970.

Currently, when you modify the default schedule, the URL is in the form https://www.techinterviewhandbook.org/grind75?hours={hours}&grouping=weeks&weeks={weeks}\

I propose just adding a &startDate={startDate} to the end of that, so the no-data would look like https://www.techinterviewhandbook.org/grind75?hours={hours}&grouping=weeks&weeks={weeks}\&startDate={startDate}

So 20 hours, 4 weeks, starting Aug-28-2022 would look like

https://www.techinterviewhandbook.org/grind75?hours=20&grouping=weeks&weeks=3&startDate=19230

jasdrive1 avatar Aug 27 '22 02:08 jasdrive1

It would be nice if we could click on the badge and have the corresponding cheatsheet open up in a new tab.

For example, this would open to https://www.techinterviewhandbook.org/algorithms/array/ image

BoxedFruits avatar Feb 17 '23 20:02 BoxedFruits

An additional loading icon beside each question would help greatly in spaced repetition. Furthermore, I think that upon tapping of loading icon you can set custom reminders(eg 3 day gap) for the question to pop up in the notification section for you to revisit the questions.

SeanChinJunKai avatar Mar 24 '23 08:03 SeanChinJunKai

Can we add dark mode too. Couldn't see any option for it.

mehak2323 avatar May 12 '23 11:05 mehak2323

I am a GSSoC'23 contributor. I have all the skills required. Please assign me this issue, I want to work on this issue under the GSSoC'23.

raju-kumar21 avatar May 21 '23 13:05 raju-kumar21

Allow showing the topic for one question at a time.

  • Change the current Show topics button to Show all topics/Hide all topics
  • Add Show topic/Hide topic to each question

Reason: Sometimes you want to view the topic just for one question but don't want any "spoilers" for the others, and it's hard to avoid seeing the next question's topic when you click Show topics

egithinji avatar Jul 08 '23 00:07 egithinji

Another possibility is to use storage.sync to store study progress without having to maintain a database.

aatng-gh avatar Aug 14 '23 05:08 aatng-gh

I made an userscript to backup my progress. Figured out I could share it here. Very basic, but maybe someone could find it useful.

https://github.com/remusa/userscripts/tree/master/src/grind-75-export

@yangshun

remusa avatar Mar 30 '24 07:03 remusa