All Projects β†’ ramiz-rahman β†’ Sort Visualizer

ramiz-rahman / Sort Visualizer

This is a web app built to visualize classic sorting algorithms such as insertion sort, merge sort, quick sort, heap sort, etc. The entire app is built with only React; no other third-party JS or CSS library has been used.

Programming Languages

javascript
184084 projects - #8 most used programming language
js
455 projects

Projects that are alternatives of or similar to Sort Visualizer

Demo Progressive Web App
πŸŽ‰ A demo for progressive web application with features like offline, push notifications, background sync etc,
Stars: ✭ 798 (+1846.34%)
Mutual labels:  pwa, css3, progressive-web-app
A2hs.js
πŸ“² A useful modern JavaScript solution that helps your website users to add (install) a progressive web application (PWA) to the Home Screen of their mobile iOS devices.
Stars: ✭ 113 (+175.61%)
Mutual labels:  pwa, css3, progressive-web-app
Angular Shoppingcart
ShoppingCart (Ecommerce) πŸ›’ Application using Angular10, Firebase, PWA, Drag&Drop, Materialized Bootstrap and i18n πŸš€πŸ”₯πŸ‘¨β€πŸ’»
Stars: ✭ 483 (+1078.05%)
Mutual labels:  pwa, progressive-web-app
Awesome Meta And Manifest
⚑ Awesome collection of meta tags & manifest properties.
Stars: ✭ 499 (+1117.07%)
Mutual labels:  pwa, progressive-web-app
Vue Wordpress Pwa
An offline-first SPA using Vue.js, the WordPress REST API and Progressive Web Apps
Stars: ✭ 665 (+1521.95%)
Mutual labels:  pwa, progressive-web-app
Trends
ultra high performance github trending application
Stars: ✭ 450 (+997.56%)
Mutual labels:  pwa, progressive-web-app
Sol Journal
✎ Simple, personal journaling progressive web app
Stars: ✭ 470 (+1046.34%)
Mutual labels:  pwa, progressive-web-app
React Progressive Web App
An opinionated React based repository which is optimized for Progressive Web App development.
Stars: ✭ 548 (+1236.59%)
Mutual labels:  pwa, progressive-web-app
React Shrine
"Shrine" Progressive Web App sample built with React
Stars: ✭ 322 (+685.37%)
Mutual labels:  pwa, progressive-web-app
Fuel Price
β›½ Check fuel prices daily in most of the states in India
Stars: ✭ 20 (-51.22%)
Mutual labels:  pwa, progressive-web-app
Yesplaymusic
ι«˜ι’œε€Όηš„η¬¬δΈ‰ζ–Ήη½‘ζ˜“δΊ‘ζ’­ζ”Ύε™¨οΌŒζ”―ζŒ Windows / macOS / Linux
Stars: ✭ 12,981 (+31560.98%)
Mutual labels:  pwa, progressive-web-app
Slidecontrol
Slidecontrol enables you to control your slides with your phone πŸ“±
Stars: ✭ 30 (-26.83%)
Mutual labels:  pwa, progressive-web-app
Qr Code Scanner
πŸ“  A simple, fast and useful progressive web application
Stars: ✭ 982 (+2295.12%)
Mutual labels:  pwa, progressive-web-app
Preact Starter
Webpack3 boilerplate for building SPA / PWA / offline front-end apps with Preact
Stars: ✭ 384 (+836.59%)
Mutual labels:  pwa, progressive-web-app
Offline Plugin
Offline plugin (ServiceWorker, AppCache) for webpack (https://webpack.js.org/)
Stars: ✭ 4,444 (+10739.02%)
Mutual labels:  pwa, progressive-web-app
Pwa Book Cn
η¬¬δΈ€ζœ¬ PWA δΈ­ζ–‡δΉ¦
Stars: ✭ 3,498 (+8431.71%)
Mutual labels:  pwa, progressive-web-app
Upup
✈️ Easily create sites that work offline as well as online
Stars: ✭ 4,777 (+11551.22%)
Mutual labels:  pwa, progressive-web-app
Mix.core
πŸš€ Mixcore CMS is an open source CMS that support both headless and decoupled to easily build any kinds of app/web app/customisable APIs built on top of ASP.NET Core / Dotnet Core. It is a completely open source ASP.NET Core (Dotnet Core) CMS solution. https://mixcore.org
Stars: ✭ 304 (+641.46%)
Mutual labels:  pwa, progressive-web-app
Super Progressive Web Apps
SuperPWA helps to convert your WordPress website into Progressive Web Apps instantly. PWA (Progressive Web Apps) demo at : https://superpwa.com and Plugin :
Stars: ✭ 304 (+641.46%)
Mutual labels:  pwa, progressive-web-app
Blog Pwa
An experiment in mixing Hugo, lit-element, and Polymer PRPL into a progressive web app blog.
Stars: ✭ 41 (+0%)
Mutual labels:  pwa, progressive-web-app

Sort Visualizer

This is a progressive web app built using React and is used to visualize classic sorting algorithms such as insertion sort, merge sort, quick sort, heap sort, etc.

This app is deployed with Netlify and can be accessed here: sort-visualizer.ramizrahman.com. I hope you have fun playing around with it.

Netlify Status

View a demo of the app on youtube:

Sort Visualizer Demo

Purpose

I wanted to improve my skills with React and also learn classic sorting algorithms. This project turned out to be a great way to achieve both of the aforementioned objectives at the same time.

Installation

The app is already deployed so you can play around with the final product using this link.

If you wish to run this app locally, clone this repo and install the dependencies.

$ git clone https://github.com/ramiz-rahman/sort-visualizer.git
$ cd sort-visualizer
$ npm install

Learn More

This project was bootstrapped with Create React App.

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

App Conventions

The src folder contains three subdirectories:

  • algorithms - Each sorting algorithm is contained in its own file and imports helper functions from the helpers.js file, which is also present inside this folder. Each algorithm file has two named exports and a default export. The named exports are <AlgorithmName>Key which returns a mapping of the color group and its meaning in the context of the algorithm, and <AlgorithmName>Desc which returns an object containing the description and details of the algorithm. The default export, AlgorithmName is a function that takes in an array of numbers, sorts it and returns an object that contains every state change that the array has undergone. This object is used to create the animation.

  • _settings - This folder contains the the CSS files that only contain CSS custom properties declarations (also known as CSS variables) for the entirety of the app. These files are used to determine the overall look and feel of the application as all components rely upon these variables.

  • components - This folder is broken down into atoms, molecules and organisms subfolders as described in Brad Frost's Atomic Design.

    • The Atoms folder contains the smallest elements that are repeatedly used throughout the app - buttons, switches, backdrops, etc.

    • The Molecules folder contains more complex components that are used independently or as part of an organisms.

    • The Organisms folder contains components which are self contained sections of the app - the top bar, the visualizer, the app drawer, etc.

    • A case can be made for a component to be in either a molecule or organism. In these sorts of situations, I did not use an exact set of rules but rather left it to intuition.

    • Each component is contained in its own folder and has 2 files. The index.js file contains the JavaScript code for the component and the style.css file contains rules for classes which are written using an alternate style naming scheme of BEM that is described as follows:

      • Blocks are written in PascalCase and must match the name of the corresponding component.
      • Elements are also written in PascalCase and separated from the block using double underscores (__). eg. ComponentName__ElementName.
      • An element is always part of a block, not another element.
      • Modifiers are written in lowercase.
      • The modifier name is separated from the block or element name by a single underscore (_). eg. ComponentName_modifiername_modifiervalue

App Design

The design of the app was largely inspired by Google's Material Design Guidelines.

The app is responsive, meaning it works across a variety of screen sizes and dimensions.

Sort Visualizer - regular (light) mode

The app has a switch for turning on dark mode.

Sort Visualizer - dark mode

License

Sort Visualizer is released under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].