https://github.com/shiveshdeogharia/dsa-playground
Interactive C++ Playground for mastering DSA with modular design and unit tests
https://github.com/shiveshdeogharia/dsa-playground
algorithms cmake competitive-programming cpp20 data-structures data-structures-and-algorithms dsa googletest
Last synced: about 1 year ago
JSON representation
Interactive C++ Playground for mastering DSA with modular design and unit tests
- Host: GitHub
- URL: https://github.com/shiveshdeogharia/dsa-playground
- Owner: ShiveshDeogharia
- License: mit
- Created: 2025-07-01T14:19:10.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-15T11:12:14.000Z (about 1 year ago)
- Last Synced: 2025-07-15T17:01:50.999Z (about 1 year ago)
- Topics: algorithms, cmake, competitive-programming, cpp20, data-structures, data-structures-and-algorithms, dsa, googletest
- Language: C++
- Homepage: https://github.com/ShiveshDeogharia/DSA-Playground
- Size: 87.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ο»Ώ# DSA Playground

> An interactive C++ playground to explore and test core Data Structures β built for engineering clarity and competitive coding mastery.

> π¦ **No setup needed!**
> Windows users can [download the `.exe`](https://github.com/ShiveshDeogharia/DSA-Playground/releases) and run it directly.
---
## π Overview
**DSA Playground** is a command-line application written in modern C++20 that lets you experiment with key data structures interactively.
Itβs cleanly modularized, namespaced, test-driven, and production-grade β built to impress both engineers and recruiters.
---
## β¨ Features
- β
Interactive CLI menus for:
- Array
- Singly Linked List
- Stack
- Queue
- Binary Search Tree
- Undirected Graph (with BFS/DFS)
- β
Modular design using `.h/.cpp` files
- β
Namespaced under `dsa::` for clean usage
- β
Unit tested with GoogleTest
- β
CMake build system with GitHub Actions CI
---
## π How to Build & Run
### π» Prerequisites
- CMake β₯ 3.10
- C++ compiler (MSVC, g++, or clang++)
- Git (to clone)
- GoogleTest (automatically downloaded via `FetchContent`)
### π§ Build & Run (Windows / Linux / WSL / Mac)
```bash
git clone https://github.com/ShiveshDeogharia/DSA-Playground.git
cd DSA-Playground
# Build
mkdir build && cd build
cmake ..
cmake --build .
# Run the playground
./Debug/dsa_playground.exe # or just: ./dsa_playground
```
### π§ͺ Run Tests
```bash
# From inside build directory
ctest -V
```
---
## π Project Structure
```
DSA-Playground/
βββ include/ # All headers (interface + DSA classes)
βββ src/ # All .cpp implementations
βββ tests/ # GoogleTest unit tests
βββ .github/workflows/ # CI pipeline (CMake + gtest)
βββ CMakeLists.txt # CMake build file
βββ README.md
```
---
## π οΈ Technologies Used
- C++20
- STL (vector, stack, queue, etc.)
- CMake
- GoogleTest
- GitHub Actions (CI)
---
## β
Testing & CI
All core data structures are unit tested with [GoogleTest](https://github.com/google/googletest).
CI is handled via [GitHub Actions](https://docs.github.com/en/actions), and runs automatically on every push to main.
To manually test:
```bash
cmake --build . --target test
```
---
## π License
This project is licensed under the [MIT License](LICENSE).
---
## π Credits
Made with β€οΈ as a passion project by Shivesh Deogharia.
Feel free to use, fork, and contribute!