Skip to content

indiser/DSA-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ DSA Project Roadmap: From Foundation to FAANG-Ready

Language Build Testing Status

A comprehensive journey through Data Structures, Algorithms, and System Design
Building a portfolio of 24 production-grade projects from foundational concepts to interview-ready systems

πŸ“š View Projects β€’ 🎯 Goals β€’ πŸ› οΈ Setup β€’ πŸ“ˆ Progress


πŸ“– About This Repository

This repository represents a structured, project-based learning journey designed to master the skills required for top-tier software engineering roles at FAANG and leading tech companies. Each project combines theoretical knowledge with practical implementation, solving real-world problems while demonstrating proficiency in modern C++ development practices.

✨ What Makes This Different?

πŸ“Š 24 Production-Grade Projects  β†’  Real-world applications, not toy examples
πŸŽ“ Interview-Aligned Curriculum  β†’  Directly maps to FAANG interview patterns
πŸ”§ Modern C++ Best Practices    β†’  C++17, RAII, smart pointers, STL mastery
βœ… Comprehensive Testing         β†’  Full test coverage with Google Test
πŸ“ˆ Progressive Complexity        β†’  From basics to distributed systems

🧭 Guiding Principles

πŸ“ˆ Progressive Difficulty

Projects are carefully sequenced to build upon previous knowledge. Start with fundamental data structures and gradually progress to complex algorithms and system design, ensuring a solid foundation at each level.

🎯 Practical Application

Every project solves real-world problems: social network analysis, route optimization, distributed caching, and more. Theory meets practice in production-quality implementations.

πŸ’Ό Interview-Focused

Concepts and patterns are directly aligned with technical interviews at FAANG companies. Each project reinforces skills assessed in coding rounds and system design discussions.


πŸ› οΈ Technologies Demonstrated

Technology Skills Demonstrated
C++17 β€’ OOP principles & design patterns
β€’ STL containers & algorithms
β€’ Memory management (RAII, smart pointers)
β€’ Modern features (structured bindings, lambdas, std::optional)
CMake β€’ Cross-platform build systems
β€’ Dependency management
β€’ Third-party library integration (FetchContent)
β€’ Multi-target project configuration
Google Test β€’ Unit testing & test fixtures
β€’ Mocking & test doubles
β€’ Parameterized tests
β€’ Code coverage analysis
Algorithms β€’ Time/space complexity analysis
β€’ Algorithm optimization techniques
β€’ Trade-off evaluation
β€’ Performance profiling

πŸ—ΊοΈ The Project Roadmap

πŸ“Š Overall Progress: 14/24 Projects Completed (58%)

Phase 1: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100% (6/6)
Phase 2: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100% (4/4)
Phase 3: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100% (4/4)
Phase 4: β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  17% (1/6)
Phase 5: β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0% (0/4)

πŸ“¦ Phase 1: Foundation Building (Months 1-2) βœ…

Focus: Programming fundamentals and basic linear data structures

# Project Core Concepts Difficulty Status
1 Number Guessing Game Linear search, basic sorting ⭐ 🟒 View
2 Calculator with History Stack operations, arithmetic algorithms ⭐ 🟒 View
3 To-Do List Application CRUD operations, list manipulation ⭐ 🟒 View
4 Student Grade Management Bubble sort, selection sort, linear search ⭐⭐ 🟒 View
5 Library Management System Hash tables, collision handling ⭐⭐ 🟒 View
6 Binary Search Tree BST operations, DFS traversals ⭐⭐ 🟒 View

Key Learnings: Arrays, Linked Lists, Stacks, Queues, Hash Tables, Trees, Basic Sorting & Searching

🎯 Phase 2: Intermediate Skills (Months 2-4) βœ…

Focus: Advanced sorting algorithms and graph traversals

# Project Core Concepts Difficulty Status
7 Sorting Algorithm Visualizer Merge sort, quick sort, heap sort ⭐⭐ 🟒 View
8 Maze Solver BFS, DFS, pathfinding algorithms ⭐⭐⭐ 🟒 View
9 Spell Checker with Trie Trie construction, prefix matching ⭐⭐⭐ 🟒 View
10 File Compression (Huffman) Priority queues, Huffman encoding ⭐⭐⭐ 🟒 View

Key Learnings: Advanced Sorting (O(n log n)), Graph Traversals, Tries, Priority Queues, Greedy Algorithms

πŸš€ Phase 3: Advanced Intermediate (Months 4-6) βœ…

Focus: Complex graph algorithms and dynamic programming

# Project Core Concepts Difficulty Status
11 Social Network Recommender Graph algorithms, shortest paths ⭐⭐⭐ 🟒 View
12 Travel Route Planner Dijkstra's algorithm, A* search ⭐⭐⭐⭐ 🟒 View
13 Stock Price Analysis Sliding window, DP patterns, heaps ⭐⭐⭐⭐ 🟒 View
14 Text Analysis Tool (LCS) Longest Common Subsequence, Edit Distance ⭐⭐⭐⭐ 🟒 View

Key Learnings: Dijkstra's, A*, Dynamic Programming, Sliding Window, Advanced Graph Algorithms

πŸ’Ž Phase 4: FAANG Interview Preparation (Months 6-9) πŸ”„

Focus: System design fundamentals and scalable architectures

# Project Core Concepts Difficulty Status
15 Distributed Cache (Mini-Redis) LRU/LFU cache, consistent hashing ⭐⭐⭐⭐⭐ 🟑 In Progress
16 Real-Time Chat Application Message queues, WebSocket protocols ⭐⭐⭐⭐ ⚫ Not Started
17 Search Engine & Web Crawler Inverted index, PageRank algorithm ⭐⭐⭐⭐⭐ ⚫ Not Started
18 Version Control (Mini-Git) Merkle trees, diff algorithms ⭐⭐⭐⭐⭐ ⚫ Not Started
19 Machine Learning Framework Matrix operations, gradient descent ⭐⭐⭐⭐⭐ ⚫ Not Started
20 Database Engine B+ trees, query optimization, ACID ⭐⭐⭐⭐⭐ ⚫ Not Started

Key Learnings: Caching Strategies, Distributed Systems, Indexing, Version Control, ML Basics, Database Internals

πŸ† Phase 5: FAANG Interview Mastery (Months 9-12) πŸ“‹

Focus: Specialized, production-grade distributed systems

# Project Core Concepts Difficulty Status
21 Blockchain Implementation Hash chains, consensus algorithms ⭐⭐⭐⭐⭐ ⚫ Not Started
22 Recommendation Engine Collaborative filtering, ML algorithms ⭐⭐⭐⭐⭐ ⚫ Not Started
23 E-commerce Order Processing Distributed transactions, inventory mgmt ⭐⭐⭐⭐⭐ ⚫ Not Started
24 Ride-Sharing Service Geospatial algorithms, matching systems ⭐⭐⭐⭐⭐ ⚫ Not Started

Key Learnings: Blockchain, Recommendation Systems, Distributed Transactions, Geospatial Algorithms


🎯 Competency Goals

⏳ Foundation

Foundation Progress

Implement basic data structures from scratch. Master time/space complexity analysis (Big O notation).

🎯 Intermediate

Intermediate Progress

Proficiency in sorting/searching algorithms, trees, graphs, and hash tables. Explain algorithmic trade-offs.

πŸ“ˆ Advanced

Advanced Progress

Master graph algorithms (Dijkstra's, A*) and Dynamic Programming. Design basic system architectures.

πŸ† Expert

Expert Progress

System design mastery, concurrent data structures, distributed systems. Build production-grade projects.

πŸ› οΈ How to Build & Test a Project

Prerequisites

# Required
- C++17 compatible compiler (GCC 7+, Clang 5+, MSVC 2017+)
- CMake 3.14 or higher
- Git

# Optional
- Ninja build system (faster builds)
- Clang-format (code formatting)

Quick Start

# Clone the repository
git clone https://github.com/indiser/DSA-Projects.git
cd DSA-Projects

# Navigate to any project
cd "Project Name"

# Create build directory
mkdir build && cd build

# Configure with CMake
cmake ..

# Build the project
cmake --build .

# Run tests
ctest --output-on-failure

# Run the executable
./ProjectName  # Linux/Mac
ProjectName.exe  # Windows

Project Structure

ProjectName/
β”œβ”€β”€ CMakeLists.txt          # Build configuration
β”œβ”€β”€ README.md               # Project-specific documentation
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.cpp           # Entry point
β”‚   └── *.cpp              # Implementation files
β”œβ”€β”€ include/
β”‚   └── *.h                # Header files
└── tests/
    └── *_test.cpp         # Unit tests

πŸ“ˆ Learning Progress

Skills Acquired

Skill Category Proficiency Projects Applied
Data Structures β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 95% 14/14
Algorithms β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 85% 14/14
System Design β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 20% 1/10
Testing & QA β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 95% 14/14
Modern C++ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 90% 14/14

Time Investment

  • Total Hours: ~400+ hours
  • Average per Project: 15-30 hours
  • Code Written: ~15,000+ lines
  • Tests Written: ~200+ test cases

πŸŽ“ Interview Preparation Mapping

Click to see how projects map to interview topics

Arrays & Strings

  • Projects: #1, #3, #4, #9, #14

Linked Lists & Stacks

  • Projects: #2, #3, #6

Trees & Graphs

  • Projects: #6, #8, #11, #12

Dynamic Programming

  • Projects: #13, #14

System Design

  • Projects: #15, #16, #17, #18, #19, #20

Advanced Topics

  • Projects: #21, #22, #23, #24

πŸ“š Resources & References

  • Books: "Introduction to Algorithms" (CLRS), "Effective Modern C++" (Scott Meyers)
  • Courses: MIT 6.006, Stanford CS106B
  • Practice: LeetCode, HackerRank, Codeforces
  • Documentation: cppreference.com, CMake Docs

🀝 Contributing

While this is a personal learning repository, suggestions and feedback are welcome! Feel free to:

  • Open an issue for bugs or improvements
  • Share your own implementations
  • Suggest new project ideas

πŸ“ License

This project is open source and available under the MIT License.


🌟 Star this repository if you find it helpful!

Made with ❀️ and lots of β˜•

Last Updated: March 2026

About

This is the repository for my Data Structures And Algorithms Projects in C++ or Any Other Programming Language

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors