Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grind 75 Feature Requests #275

Open
1 of 6 tasks
yangshun opened this issue May 16, 2022 · 15 comments
Open
1 of 6 tasks

Grind 75 Feature Requests #275

yangshun opened this issue May 16, 2022 · 15 comments

Comments

@yangshun
Copy link
Owner

yangshun commented May 16, 2022

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

@nanomosfet
Copy link

nanomosfet commented May 19, 2022

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?

@yangshun
Copy link
Owner Author

yangshun commented May 20, 2022

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 yangshun pinned this issue May 25, 2022
@avijit1258
Copy link

avijit1258 commented Jun 12, 2022

@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.

@nanomosfet
Copy link

nanomosfet commented Jun 13, 2022

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

@avijit1258
Copy link

avijit1258 commented Jun 14, 2022

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.

@nanomosfet
Copy link

nanomosfet commented Jun 14, 2022

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

@abepark26
Copy link

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?

@jasdrive1
Copy link

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

@yangshun yangshun unpinned this issue Oct 9, 2022
@BoxedFruits
Copy link

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

@SeanChinJunKai
Copy link

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.

@mehak2323
Copy link

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

@raju-kumar21
Copy link

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.

@egithinji
Copy link

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

@aaronthangnguyen
Copy link

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

@remusa
Copy link

remusa commented Mar 30, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests