Skip to content

A repo containing data structures and Algorithms concepts from simple to advanced concepts in Typescript with full JSDOC comment documentation. Designed to act as a roadmap for any learner.

Notifications You must be signed in to change notification settings

WaithakaGuru/AlgosLab

Repository files navigation

Algos Project — DSA Playground

AlgosLab

A comprehensive Data Structures & Algorithms (DSA) project that combines interactive visualizations with a learning platform.
This repo is designed for learners, students, and enthusiasts who want to see algorithms in action and understand the theory behind them.


🌟 Features

🔹 AlgoLearn

  • A learning hub for everything in DSA:
    • Basics of TypeScript & typing
    • Linear Data Structures (arrays, stacks, queues, linked lists)
    • Non-Linear Data Structures (trees, heaps, graphs)
    • Traversals & Recursion
    • Searching & Sorting algorithms
    • Advanced concepts (optimization, complexity analysis, etc.)

🔹 Sorta

  • An interactive sorting visualizer built with React + TypeScript + Vite + TailwindCSS.
  • Supports multiple sorting algorithms.
  • Allows experimenting with different array sizes and speeds.
  • Great for hands-on learning of sorting techniques.

Project Structure

├── advanced_concepts # Advanced DSA topics (e.g., DP, greedy, backtracking)
├── AlgosLab # React + Vite application
│ └── src
│ ├── components # Reusable UI components
│ ├── pages # Application pages (Sorta, AlgoLearn)
│ ├── topics # DSA topics content
│ └── utils # Utility functions/helpers
├── linear_data_structures
│ └── linked_lists # Implementations of linked lists
├── nonLinear_data_structures
│ ├── graphs # Graph data structures & algorithms
│ ├── heaps # Heap implementations
│ └── trees
│ └── tree_traversal # Tree traversals (DFS, BFS, etc.)
├── search # Searching algorithms
├── sort # Sorting algorithms
└── sort_visualizer # Sorting visualization tool


⚙️ Tech Stack

  • Frontend: React, TypeScript, Vite, Tailwind CSS, PostCSS
  • Algorithms & DSA: Implemented in TypeScript & JavaScript
  • Visualization: Custom components for animations & interactions

🚀 Getting Started

1️⃣ Clone the repo

git clone https://github.com/yourusername/algos-project.git
cd algos-project

2️⃣ Install dependancies

npm install

3️⃣ Run the project

npm run dev

4️⃣ Build for production

npm run build

📚 Usage

  • Visit AlgoLearn to explore explanations and code examples of different DSA topics.

  • Use Sorta to visualize sorting algorithms with adjustable array sizes and speeds.


🧠 Learning Goals

This project will help you:

  • Master the fundamentals of Data Structures & Algorithms.

  • Understand time and space complexity through practical demos.

  • Bridge the gap between theory and real-world application.

  • Improve TypeScript and React development skills.


🤝 Contributing

Contributions are welcome!

  • Fork the repo

  • Create your feature branch (git checkout -b feature/my-feature)

  • Commit your changes (git commit -m 'Add new feature')

  • Push to the branch (git push origin feature/my-feature)

  • Open a Pull Request

About

A repo containing data structures and Algorithms concepts from simple to advanced concepts in Typescript with full JSDOC comment documentation. Designed to act as a roadmap for any learner.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages