Skip to content

masabinhok/vizit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Vizit - Interactive Algorithm Visualizer

Learn algorithms visually through real-time, interactive animations

Next.js React TypeScript License PRs Welcome

πŸš€ Live Demo β€’ πŸ› Report Bug β€’ ✨ Request Feature


πŸ“– Table of Contents


🌟 About

Vizit is an educational platform that brings algorithms to life through smooth, interactive visualizations. Perfect for students, educators, and anyone learning computer science fundamentals.

Why Vizit?

  • 🎯 Step-by-step execution with pause/play controls
  • 🎨 Beautiful animations with dark/light themes
  • πŸ“Š Performance metrics tracked in real-time
  • 🧩 Multiple algorithms - sorting, data structures, graphs
  • πŸŽ“ Educational focus - clear explanations and pseudocode
  • πŸ€– AI Learning Assistant - Interactive chatbot for instant help

✨ Features

Available Visualizations

Sorting Algorithms

  • Bubble Sort
  • Merge Sort
  • Selection Sort

Math Algorithms

  • Fibonacci
  • GCD (Greatest Common Divisor)
  • Modular Arithmetic
  • Sieve of Eratosthenes
  • Prime Factorization

Data Structures

  • Stack
  • Queue
  • B-Tree

Graph Algorithms

  • Breadth-First Search (BFS)
  • Maze Generation

Visualization Controls

  • Step-by-step execution (play, pause, step, reset)
  • Speed control
  • Code highlighting
  • Custom input
  • Responsive design
  • Dark/Light themes

πŸ€– AI Learning Assistant

  • Interactive chatbot powered by Google Gemini
  • Real-time algorithm explanations and guidance
  • Complexity analysis and performance insights
  • Step-by-step learning with examples
  • Streaming responses with beautiful formatting

πŸš€ Quick Start

Prerequisites

  • Node.js 20.x or higher
  • npm, yarn, or pnpm

Installation

# Clone the repository
git clone https://github.com/masabinhok/vizit.git
cd vizit

# Install dependencies
npm install

# Set up environment variables
cp .env.local.example .env.local
# Add your Gemini API key to .env.local (see Setup Guide below)

# Run development server
npm run dev

# Open http://localhost:3000

πŸ€– AI Chatbot Setup

Vizit includes an AI-powered chatbot that helps users learn algorithms interactively! To enable this feature:

  1. Get a free Gemini API key:

    • Visit Google AI Studio
    • Sign in with your Google account
    • Click "Create API Key" and copy it
  2. Configure the API key:

    # Create environment file
    echo "GEMINI_API_KEY=your_actual_api_key_here" > .env.local
  3. Features you'll unlock:

    • 🎯 Algorithm explanations with step-by-step breakdowns
    • πŸ“Š Complexity analysis and performance insights
    • πŸ’‘ Interactive learning with examples and practice guidance
    • πŸš€ Real-time streaming responses with beautiful formatting
    • 🎨 Visual learning integrated with Vizit's platform features
  4. Test the chatbot:

    • Start the dev server: npm run dev
    • Click the chat icon in the bottom-right corner
    • Try asking: "What is Merge Sort?" or "How does Binary Search work?"

Note: The chatbot will work without an API key but with limited functionality. For the best learning experience, we recommend setting up the Gemini API key!

Build for Production

npm run build
npm run start

🀝 Contributing

We welcome contributions from developers of all skill levels!

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“š Read our Contributing Guide for detailed instructions.

Good First Issues

Perfect for first-time contributors:

  • 🎨 Add new algorithms - Follow our Adding Algorithms Guide
  • πŸ“š Improve documentation - Add comments, fix typos, clarify instructions
  • πŸ› Fix bugs - Check our issue tracker
  • ✨ Enhance UI/UX - Improve animations, accessibility, or design
  • πŸ§ͺ Add tests - Help us improve code quality

Look for issues labeled: good-first-issue, help-wanted, hacktoberfest

Development Guidelines

  • Code Style: We use ESLint and Prettier - run npm run lint before committing
  • TypeScript: All code must be type-safe
  • Commits: Use conventional commits (e.g., feat:, fix:, docs:)
  • Testing: Test your changes thoroughly before submitting

πŸ“ Project Structure

vizit/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   └── chat/           # AI chatbot API endpoint
β”‚   β”œβ”€β”€ algorithm/
β”‚   β”‚   β”œβ”€β”€ bfs/
β”‚   β”‚   β”œβ”€β”€ binary-search/
β”‚   β”‚   β”œβ”€β”€ btree/
β”‚   β”‚   β”œβ”€β”€ bubble-sort/
β”‚   β”‚   β”œβ”€β”€ fibonacci/
β”‚   β”‚   β”œβ”€β”€ gcd/
β”‚   β”‚   β”œβ”€β”€ maze-generation/
β”‚   β”‚   β”œβ”€β”€ prime-factorization/
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ layout.tsx
β”‚   └── page.tsx
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ChatbotWidget.tsx    # AI learning assistant
β”‚   β”œβ”€β”€ ui/
β”‚   └── visualizers/
β”œβ”€β”€ contexts/
β”‚   └── ChatbotContext.tsx   # Chat state management
β”œβ”€β”€ utils/
β”‚   └── gemini-service.ts    # AI service integration
β”œβ”€β”€ lib/
β”‚   └── utils/
β”œβ”€β”€ public/
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ CONTRIBUTING.md
β”‚   β”œβ”€β”€ ADDING_ALGORITHMS.md
β”‚   └── CHATBOT_SETUP.md     # Detailed chatbot setup
β”œβ”€β”€ .env.local               # Environment variables
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── README.md

Key Architecture:

  • Each algorithm/data structure has its own dedicated page and logic file
  • Reusable, type-safe visualization components
  • Easy to extend – see Adding Algorithms Guide

πŸ“– Documentation


πŸ—ΊοΈ Roadmap

Recently Added ✨

  • AI Learning Assistant - Interactive chatbot powered by Google Gemini
  • Real-time streaming responses with beautiful formatting
  • Algorithm explanations and complexity analysis
  • Step-by-step learning guidance

Coming Soon

  • Quick Sort and Merge Sort improvements
  • Binary Search visualization
  • Graph algorithms (DFS, Dijkstra)
  • Algorithm comparison mode
  • Mobile app support
  • Enhanced chatbot features (code examples, quizzes)

See open issues for planned features and known bugs.


πŸ’¬ Community


πŸ† Contributors

Thanks to all our contributors! πŸŽ‰

Want to be featured here? Submit your first PR!


πŸ“„ License

This project is licensed under the MIT License - see LICENSE for details.


⭐ Show Your Support

If Vizit helps you learn algorithms:

  • ⭐ Star this repository
  • πŸ”€ Fork and contribute
  • πŸ“’ Share with your learning community
  • πŸ’¬ Give us feedback

Made with πŸ’™ by the open source community

⬆ Back to Top

About

Experience the beauty of algorithms through interactive visualizations, step-by-step breakdowns, and real-time animations.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages