Skip to content

codernotme/AlgoMitra

Repository files navigation

🚀 AlgoMitra

AlgoMitra Logo

Next.js TypeScript NextUI Visualization


🌟 Introduction

AlgoMitra is a visually engaging, interactive educational tool aimed at making algorithm learning enjoyable and accessible. Built with Next.js and TypeScript, and powered by NextUI, AlgoMitra offers seamless visualizations that allow users to intuitively explore a wide variety of algorithms, from basic sorting and searching to advanced dynamic programming and graph traversal techniques.


🔍 Features at a Glance

  • 🌐 Rich Algorithm Library:

    • Sorting Algorithms: Bubble Sort (with more to come like Quick Sort, Merge Sort, and Heap Sort).
    • Searching Algorithms: Binary Search and Linear Search.
    • Graph Traversal: Upcoming support for DFS, BFS, Dijkstra’s, and Kruskal’s algorithms.
    • Dynamic Programming & OS Algorithms: Early implementations of Fibonacci and Knapsack, with CPU scheduling algorithms (Round Robin, FCFS) on the way.
  • 💡 Interactive Controls:

    • Select algorithms, generate random arrays, adjust visualization speed, and view step-by-step visual breakdowns.
  • 📱 Responsive UI: Adapts seamlessly across devices for learning on the go.


🛠️ Tech Stack

Built with some of the best technologies to deliver a smooth and effective user experience:

Next.js TypeScript React CSS NextUI


📅 Roadmap

Stage 1: Core Algorithms & Basic Visualizations

  1. Sorting Algorithms: Add support for Quick Sort, Merge Sort, Heap Sort, and more.
  2. Graph Traversal Algorithms: Introduce DFS, BFS, and shortest path algorithms (Dijkstra's).
  3. Operating System Algorithms:
    • CPU Scheduling: FCFS, SJF, Priority Scheduling, Round Robin.
    • Memory Management: Implement Paging, Segmentation, and Page Replacement strategies.
    • Disk Scheduling & Deadlock Handling: Include algorithms like Banker’s and Wound-Wait.
  4. File Management: Implement methods for contiguous and indexed file allocations.

Stage 2: Advanced Features & Enhancements

  1. 3D Visualizations for enhanced engagement.
  2. User Customization Options for inputs like array size and values.
  3. Real-Time Complexity Feedback: Track and display time and space complexity in real time.
  4. User Authentication & Profiles: Save progress, algorithm preferences, and difficulty settings.

🎨 User Interface & Navigation

AlgoMitra’s UI is designed with simplicity and functionality in mind:

  • Dynamic Control Panel: Provides easy access to algorithm selection, speed adjustment, and array generation.
  • Interactive Components: Each algorithm is housed within its own modular component, ensuring clarity and smooth navigation.
  • Accessible on All Devices: Responsive layouts for seamless viewing across desktop and mobile platforms.

🏃‍♂️ Get Started

Clone the repository to start exploring algorithms with AlgoMitra!

Clone the Repository

git clone https://github.com/codernotme/AlgoMitra.git

Install Dependencies

cd AlgoMitra
npm install

Start the Development Server

npm run dev

You're all set to start visualizing algorithms in action! 🎉


📣 How to Contribute

We welcome contributions from the community! Here’s how you can contribute:

  1. Fork the Repository and make your changes in a new branch.
  2. Submit a Pull Request: Ensure your PR includes clear explanations of your contributions.
  3. Check Issues: See if there’s an open issue you’d like to help with or suggest your ideas by creating a new issue.

🎉 Current Contributors

Contributors


👀 Project Preview

AlgoMitra Visualizer Preview


📄 License

AlgoMitra © 2024. Licensed under the MIT License. See LICENSE for more information.


Happy coding and learning with AlgoMitra! 😊

Releases

No releases published

Packages

No packages published