Welcome to DSA Visualizer, an open-source project dedicated to building interactive and educational visualizations for Data Structures and Algorithms (DSA). This project helps learners explore, understand, and improve algorithmic concepts through hands-on visual demonstrations.
βΈ»
π Project Structure
.
βββ index.html
βββ LICENSE
βββ package-lock.json
βββ package.json
βββ postcss.config.js
βββ README.md
βββ src
β βββ App.jsx
β βββ components
β β βββ CompanyLogo.jsx
β β βββ dsa <-- DSA visualization components
β β β βββ ContributorsSection.jsx
β β β βββ DPVisualizer.jsx
β β β βββ HeapVisualizer.jsx
β β β βββ LinkedListVisualizer.jsx
β β β βββ TreeVisualizer.jsx
β β βββ layout
β β β βββ Footer.jsx
β β β βββ Header.jsx
β β βββ ScrollToTop.jsx
β βββ data
β β βββ contributors.js <-- contributor data
β βββ index.css
β βββ lib <-- algorithm and helper libraries
β β βββ dsaAdvancedUtils.js
β β βββ dsaAlgorithms.js
β β βββ utils.js
β βββ main.jsx
β βββ pages
β βββ DsaVisualization.jsx <-- main DSA visualization page
βββ tailwind.config.js
βββ tools
βββ vite.config.js
Important: Contributors are only allowed to modify or add files in: β’ src/components/dsa/ β’ src/data/ β’ src/lib/ β’ src/pages/DsaVisualization.jsx
No additional pages or folders should be created outside these directories.
βΈ»
π Getting Started
- Clone the repository
git clone <repository-url>
cd <repository-folder>
- Install dependencies
npm install
- Run locally
npm run dev
β’ The application will be available at http://localhost:3000
β’ Open the page to see the DSA visualizations in action.
- Build for production
npm run build
β’ The production-ready files will be in the dist/ folder.
βΈ»
β¨ How to Contribute
This project encourages contributions that enhance DSA visualizations. You can contribute by:
β’ Adding new algorithms or visualizations
β’ Improving existing visualizations for clarity and interactivity
β’ Fixing bugs in the existing components - Check the issue tab
β’ Adding new DSA sections (e.g., dynamic programming, trees, heaps)
β Contribution Rules
- Allowed directories for contribution:
β’ src/components/dsa/ β’ src/data/ β’ src/lib/ β’ src/pages/DsaVisualization.jsx - Do NOT create new pages or folders outside the allowed directories.
- Code Quality
β’ Use React functional components and hooks β’ Follow the existing CSS / Tailwind styling for consistency β’ Keep code modular and reusable
βΈ»
πΏ Branching Workflow
To ensure a smooth contribution process, follow these rules:
-
Never commit directly to the main branch.
-
Create a development branch for your changes:
git checkout -b dev_<your-name>/<your-feature-name>Example: dev_yasir/add-bubble-sort-visualizer
-
Make your changes in this branch.
-
Commit your changes with clear commit messages:
git add . git commit -m "Add Bubble Sort visualizer component" -
Push your branch to the remote repository:
git push origin dev_<your-name>/<your-feature-name> -
Raise a Pull Request (PR) against the main branch:
β’ Go to the repository on GitHub β’ Click βCompare & Pull Requestβ β’ Add a descriptive title and summary of your changes β’ Submit the PR for review
After approval, your changes will be merged into main.
βΈ»
π Reporting Issues
If you encounter any bugs or visual glitches:
β’ Open an issue in the repository
β’ Provide a clear description, steps to reproduce, and screenshots if applicable
βΈ»
π License
This project is licensed under the GPL 3.0 License. See LICENSEοΏΌ for details.
βΈ»
β€οΈ Thank You
We appreciate all contributions that help make DSA learning more visual, interactive, and intuitive. Happy coding and visualizing!