- Click the Fork button on the top-right corner of the repository page to create your copy.
- Clone the forked repository to your local machine:
git clone https://github.com/<your-username>/SortVision.git
- Replace
<your-username>with your GitHub username.
- Create a branch for your feature or bug fix:
git checkout -b feature-name
- Use a meaningful branch name (e.g.,
improve-ui,fix-bug-xyz).
- Implement your changes in the codebase.
- Ensure your code follows best practices and is well-documented.
- Run tests and verify everything is working.
- Stage and commit your changes:
git add . git commit -m "Describe your changes (e.g., Improved animation speed)"
- Push the changes to your forked repository:
git push origin feature-name
- Go to the original repository and click New Pull Request.
- Select your branch, provide a detailed description of your changes, and submit the pull request.
Below is an overview of the SortVision project structure:
SortVision
ββ .gitignore # Specifies files Git should ignore (node_modules, build files, etc.)
ββ components.json # Configuration for UI components (ShadCN UI setup)
ββ eslint.config.js # ESLint configuration for enforcing coding standards
ββ index.html # Entry HTML file that loads the React application
ββ jsconfig.json # JavaScript configuration for path aliases and compiler options
ββ package-lock.json # Lock file for ensuring consistent dependency versions
ββ package.json # Contains project metadata, dependencies, and scripts
ββ pnpm-lock.yaml # Lock file for pnpm package manager
ββ public/ # Static assets
β ββ favicon.svg # Website favicon icon
β ββ manifest.json # PWA manifest for app installation settings
β ββ mobile-fix.js # JavaScript fixes for mobile-specific issues
β ββ mobile.css # Mobile-specific CSS styles
β ββ splash.svg # Splash screen image for branding
β ββ sw.js # Service Worker for PWA offline functionality
ββ src/ # Source code directory
β ββ App.css # Global styles for the main App component
β ββ App.jsx # Root React component with routing and layout
β ββ algorithms/ # Sorting algorithm implementations
β β ββ bubbleSort.jsx # Bubble Sort algorithm
β β ββ index.js # Exports all sorting algorithms
β β ββ insertionSort.jsx # Insertion Sort algorithm
β β ββ mergeSort.jsx # Merge Sort algorithm
β β ββ quickSort.jsx # Quick Sort algorithm
β β ββ radixSort.jsx # Radix Sort algorithm
β β ββ selectionSort.jsx # Selection Sort algorithm
β ββ components/ # UI components directory
β β ββ ArrayVisualization.jsx # Handles sorting bar visualization
β β ββ ConfigPanel.jsx # User interface for selecting sorting parameters
β β ββ MetricsPanel.jsx # Displays performance metrics like swaps and comparisons
β β ββ SortingVisualizer.jsx # Main component for sorting execution
β β ββ VisualizationPanel.jsx # Panel for displaying facts and details
β β ββ ui/ # Reusable UI components (buttons, cards, sliders, etc.)
β β ββ badge.jsx # Badge component for labels
β β ββ button.jsx # Styled button component
β β ββ card.jsx # Card component for UI grouping
β β ββ input.jsx # Custom input field component
β β ββ select.jsx # Dropdown selection component
β β ββ slider.jsx # Slider for adjusting speed and array size
β β ββ tabs.jsx # Tab component for navigation
β ββ index.css # Global styles for the app
β ββ lib/ # Utility functions
β β ββ utils.js # Common helper functions
β ββ main.jsx # Application entry point
ββ vite.config.js # Vite bundler configuration
- π Organized β Components, logic, and styles are neatly separated.
- π§ Scalable β Easy to add new features.
- π οΈ Maintainable β Clear structure for debugging and collaboration.
By contributing to this project, you agree to abide by our Code of Conduct. Be respectful, inclusive, and collaborative in all interactions.
- Check the Issues tab for open feature requests or bug reports.
- Keep your commits small and focused on a single change.
- Avoid committing unnecessary files.
- Regularly sync your fork with the main repository:
git pull upstream main
If you have any questions:
- Open an Issue in the repository.
- Contact the maintainers via the repository discussion section.
Thank you for contributing to SortVision! π Let's make sorting visual, interactive, and fun! π