Additionally if there are any such kind of projects online (e.g. github) where you deal with many algos/DS, please mention.
Thanks !
For general object-oriented programming and working with lists/sets, write your own versions of classic 2-D arcade games like Snake, Asteroids, Pac-Man, or Breakout. You can use simple geometric shapes and any drawing framework if you don't want to create complex graphics.
Conway's Life, Notakto (2-D arrays)
Frequency-based cipher analysis (easy application of hash tables)
Password cracking (hashing)
Search engine for the plays of Shakespeare: given a word, return the text locations where it occurs (implementing and constructing an index data structure)
Predictive text generators
Simulating queues and theme park rides (priority queues, event-driven simulation)
Stack-based programming language interpreter (stacks, postfix arithmetic, simple lexical analysis)
Generating mazes by building spanning trees (graphs, greedy algorithms)
Spellchecking (using dynamic programming for edit distances)
Writing an interpreter is hard but will tie a lot of things together (lexical analysis, recursive parsing, trees, tree traversals)
I also second the recommendation for coding a simple game like Tic-Tac-Toe or Nim and writing a search-based AI opponent. Great for developing proficiency with recursion.
It's a collection of 25 vaguely Christmas-themed problems published each December. The 2019 advent requires you to, among others, write an interpreter for pseudo-machine code, navigate around a maze, manipulate graphs... So it's a fun way to play around with algorithmic and data structure concepts.
I'd also suggest: https://github.com/tayllan/awesome-algorithms
I think writing small games and solvers for them can be a good way to learn and practice algorithms and data structures. In my first year of CS we had to implement the Rush Hour game and write a solver for it.
It was originally titled "How to Think Like a Computer Scientist." It tries to teach basic CS concepts with Python.
Things like graph exploration for maps, memory management, string parsing, software design and architecture are all found in adventure games
as puzzle problems, it's worth implementing and benchmarking various tree types. Implement from scratch a bst, trie, b-tree, avl, red-black, quadtree
Sort a collection of numbers larger than the memory of your machine.
Somewhat orthogonal to your question - but I wanted to point out that if FAANG opportunities are what you're after, doing projects is not going to help.
> it doesn't motivate me studing algorithms and data-structure just for job preparation.
That's exactly what you need to do if you wish to land a FAANG job.