Skip to content

VoidArchive/anishshrestha.com

Repository files navigation

anishshrestha.com

A personal portfolio and interactive coding laboratory built to explore the boundaries of web development and algorithm implementation.

Why I Built This

This project exists as a playground for experimentation—to see how much I can build, learn, and push the limits of modern web technologies. It's my sandbox for exploring complex algorithms, game AI, visualization techniques, and creative coding challenges.

Every lab, every algorithm, and every interaction represents a learning opportunity. From implementing minimax algorithms to building custom animation engines, this portfolio is a testament to curiosity-driven development and the joy of solving interesting problems.

Features

Interactive Algorithm Labs

  • Bagchal: Traditional Nepali board game with AI opponent using minimax algorithm and opening books
  • DSA Visualizer: Real-time visualization of sorting algorithms (Bubble, Quick, Merge, Heap) and pathfinding (A*, Dijkstra, BFS, DFS)
  • Conway's Game of Life: Cellular automaton simulation with pattern library and real-time statistics
  • Tic-Tac-Toe: Classic game with unbeatable AI implementation

Technical Architecture

  • Modular Game Engine: Abstracted BaseEngine system for rapid game development
  • Reusable AI Framework: Minimax implementations with alpha-beta pruning
  • Custom Animation Engine: State management system for algorithm visualization
  • Component Architecture: Clean, maintainable Svelte 5 components

Development Stack

  • SvelteKit 5 with Server-Side Rendering
  • TypeScript for type safety throughout
  • Tailwind CSS 4 for consistent styling
  • Cloudflare Workers deployment
  • MDsveX for technical blog integration

Disclaimer

These labs are experimental projects built for learning and exploration. While I strive for quality, you may encounter bugs, performance issues, or unexpected behavior. This is part of the experimentation process.

If you find any issues or have suggestions for improvements, please feel free to:

  • Message me directly
  • Create an issue on the GitHub repository
  • Submit a pull request with fixes or enhancements

Your feedback helps make these experiments better for everyone.

Todo

Performance Optimizations

  • Implement Web Workers for heavy algorithm computations
  • Add progressive loading for large datasets
  • Optimize animation performance with requestAnimationFrame batching
  • Add service worker for offline functionality

User Experience

  • Add keyboard shortcuts for all interactive labs
  • Implement dark/light theme toggle
  • Add accessibility improvements (ARIA labels, screen reader support)
  • Create mobile-optimized controls for complex interactions

Technical Improvements

  • Add comprehensive test suite for algorithms
  • Implement error boundaries and graceful error handling
  • Add TypeScript strict mode compliance
  • Create automated deployment pipeline with testing

Future Lab Plans

Algorithm Visualizations

  • Graph Algorithms: Spanning trees, topological sorting, network flow
  • Machine Learning: Neural network visualization, gradient descent animation
  • Data Structures: Binary trees, heaps, hash tables with interactive operations
  • String Algorithms: Pattern matching, suffix trees, edit distance

Interactive Games

  • Chess Engine: Full chess implementation with advanced AI
  • Maze Generator: Procedural maze generation with various algorithms
  • Cellular Automata: Rule 30, Langton's Ant, and other automaton systems
  • Physics Simulations: Particle systems, collision detection, fluid dynamics

Advanced Features

  • Code Playground: In-browser code editor for algorithm experimentation
  • Performance Benchmarking: Real-time algorithm performance comparison
  • 3D Visualizations: WebGL-based algorithm animations
  • Collaborative Features: Share custom algorithms and visualizations

Contributing

This is a personal learning project, but I welcome contributions, suggestions, and discussions about algorithms, optimizations, or interesting problems to solve.

How to Contribute

  1. Fork the repository and create a feature branch
  2. Follow the existing code style (TypeScript, Svelte 5, Tailwind)
  3. Update documentation for significant changes
  4. Submit a pull request with a clear description

Areas for Contribution

  • Algorithm implementations and optimizations
  • Bug fixes and performance improvements
  • Accessibility enhancements
  • Mobile responsiveness improvements
  • Documentation and code comments

Getting Started

# Clone and install dependencies
git clone https://github.com/anish-shrestha/anishshrestha.com
cd anishshrestha.com
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Deploy to Cloudflare Workers
pnpm deploy

Design Attribution

Feel free to use this portfolio design as inspiration for your own projects. I'd appreciate attribution and would be happy to see how you adapt and improve upon these ideas.

About

Portfolio - v2

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors