Skip to content

Latest commit

Β 

History

History
165 lines (128 loc) Β· 4.21 KB

File metadata and controls

165 lines (128 loc) Β· 4.21 KB

DSA Visualizer

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

  1. Clone the repository
git clone <repository-url>
cd <repository-folder>
  1. Install dependencies
npm install
  1. Run locally
npm run dev
β€’	The application will be available at http://localhost:3000
β€’	Open the page to see the DSA visualizations in action.
  1. 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

  1. Allowed directories for contribution:
    β€’	src/components/dsa/
    β€’	src/data/
    β€’	src/lib/
    β€’	src/pages/DsaVisualization.jsx
    
  2. Do NOT create new pages or folders outside the allowed directories.
  3. 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:

  1. Never commit directly to the main branch.

  2. Create a development branch for your changes:

    git checkout -b dev_<your-name>/<your-feature-name>
    

    Example: dev_yasir/add-bubble-sort-visualizer

  3. Make your changes in this branch.

  4. Commit your changes with clear commit messages:

    git add .
    git commit -m "Add Bubble Sort visualizer component"
    
  5. Push your branch to the remote repository:

    git push origin dev_<your-name>/<your-feature-name>
    
  6. 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!