An open API service indexing awesome lists of open source software.

https://github.com/codernotme/algomitra


https://github.com/codernotme/algomitra

algorithms dsa logic-building os visualizer

Last synced: 11 months ago
JSON representation

Awesome Lists containing this project

README

          

# 🚀 **AlgoMitra**


AlgoMitra Logo

![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white)
![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
![NextUI](https://img.shields.io/badge/NextUI-ff4088?style=for-the-badge)
![Visualization](https://img.shields.io/badge/Visualization-Enabled-brightgreen?style=for-the-badge)

---

## 🌟 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](https://skillicons.dev/icons?i=nextjs)](https://nextjs.org/)
[![TypeScript](https://skillicons.dev/icons?i=typescript)](https://www.typescriptlang.org/)
[![React](https://skillicons.dev/icons?i=react)](https://react.dev/)
[![CSS](https://skillicons.dev/icons?i=css)](https://developer.mozilla.org/en-US/docs/Web/CSS)
![NextUI](https://img.shields.io/badge/NextUI-FF4088?style=for-the-badge&logo=data:image/svg+xml;base64,&logoColor=white)

---

## 📅 **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
```bash
git clone https://github.com/codernotme/AlgoMitra.git
```

### Install Dependencies
```bash
cd AlgoMitra
npm install
```

### Start the Development Server
```bash
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](./LICENSE) for more information.

---

Happy coding and learning with **AlgoMitra**! 😊