๐ง An open-source, interactive DSA learning platform that brings algorithms to life through step-by-step animations, structured learning paths, and progress tracking.
Built for students, developers, and interview candidates who want to see how algorithms work โ not just read about them.
โจ Features ยท ๐ท Screenshots ยท ๐ Tech Stack ยท ๐ Quick Start ยท ๐ Project Structure ยท ๐ค Contributing ยท ๐ License
"Tell me and I forget, teach me and I remember, involve me and I learn." โ Benjamin Franklin
Most DSA resources are walls of text and static diagrams. AlgoBuddy changes that by letting you interact with every data structure and algorithm in real time.
|
|
Animated, step-by-step visualizations for a wide range of DSA topics:
|
๐ Sorting |
๐ Searching |
๐ Stack |
๐ถ Queue |
๐ Linked List |
|
|
|
|
|
|
๐ณ Trees |
#๏ธโฃ HashMap |
๐ Complexity Graphs |
|
|
|
| Feature | Description |
|---|---|
| ๐ Auth | Email/password with Cloudflare Turnstile captcha + Google OAuth |
| ๐ Dashboard | Module-level progress tracking per data structure |
| ๐ฅ Streaks | Activity heatmap (last 90 days) + daily streak counter |
| ๐ค AI Assistant | Built-in chatbot powered by Gemini for concept help |
| Feature | Description |
|---|---|
| ๐ท Categories | Filter articles by DSA topic |
| ๐ Full-text Search | Instantly find relevant articles |
| โฑ Reading Time | Estimated reading time on every article |
| ๐ Rich Content | In-depth articles on core DSA concepts |
| Feature | Description |
|---|---|
| ๐ Dark/Light Mode | Theme toggle persisted to localStorage |
| ๐ฑ Responsive | Optimized for mobile, tablet, and desktop |
| ๐ฌ Animations | Smooth visualizations via GSAP + Framer Motion |
| โจ Particle Effects | Interactive background using tsParticles |
graph TB
subgraph Client["๐ฅ Client โ Next.js 14 App Router"]
UI["UI Components<br/>(React + Tailwind)"]
VIS["Visualizer Engine<br/>(GSAP + Framer Motion)"]
CHARTS["Complexity Graphs<br/>(Recharts)"]
EDITOR["Code Editor<br/>(Monaco)"]
THEME["Theme System<br/>(Dark/Light)"]
end
subgraph API["โก API Layer"]
AUTH_API["Auth Routes"]
CONTACT["Contact API"]
REVIEW["Review API"]
CHATBOT["AI Assistant<br/>(Gemini API)"]
end
subgraph Services["โ๏ธ External Services"]
SUPA["Supabase<br/>(DB + Auth)"]
CF["Cloudflare<br/>Turnstile"]
GA["Google<br/>Analytics"]
REDIS["Upstash<br/>Redis"]
MAIL["Gmail<br/>(Nodemailer)"]
GEMINI["Google<br/>Gemini API"]
end
UI --> VIS
UI --> CHARTS
UI --> EDITOR
UI --> THEME
UI --> API
UI --> SUPA
AUTH_API --> SUPA
AUTH_API --> CF
CONTACT --> MAIL
CONTACT --> CF
REVIEW --> MAIL
REVIEW --> CF
CHATBOT --> REDIS
CHATBOT --> GEMINI
UI --> GA
style Client fill:#1e1b4b,stroke:#818cf8,stroke-width:3px,color:#e0e7ff
style API fill:#1e3a5f,stroke:#38bdf8,stroke-width:3px,color:#e0f2fe
style Services fill:#064e3b,stroke:#34d399,stroke-width:3px,color:#d1fae5
| Tool | Version |
|---|---|
| Node.js | >= 20.x |
| npm | >= 10.x |
| Git | Latest |
git clone https://github.com/PankajSingh34/AlgoBuddy.git
cd AlgoBuddynpm installCreate a .env.local file in the project root:
# โโโโโโโโโโโโ Email โโโโโโโโโโโโ
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-google-app-password
REVIEW_INBOX_EMAIL=optional-inbox@gmail.com
# โโโโโโโโโโโโ Supabase โโโโโโโโโโโโ
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_KEY=your-supabase-service-key
# โโโโโโโโโโโโ Cloudflare Turnstile โโโโโโโโโโโโ
NEXT_PUBLIC_TURNSTILE_SITE_KEY=your-turnstile-site-key
TURNSTILE_SECRET_KEY=your-turnstile-secret-key
# โโโโโโโโโโโโ Google Analytics โโโโโโโโโโโโ
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
# โโโโโโโโโโโโ AI Chatbot โโโโโโโโโโโโ
GEMINI_API_KEY=your-gemini-api-key
# โโโโโโโโโโโโ Rate Limiting (Production) โโโโโโโโโโโโ
UPSTASH_REDIS_REST_URL=your-upstash-url
UPSTASH_REDIS_REST_TOKEN=your-upstash-token๐ก Tip: See
EnvExample.txtfor a complete reference of all environment variables.
npm run devOpen http://localhost:3000 and start visualizing! ๐
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint
npm run test # Run lint + security tests
npm run test:security # Run XSS security tests onlyAlgoBuddy/
โ
โโโ ๐ app/ # Next.js App Router
โ โโโ ๐ api/ # API routes
โ โ โโโ auth/ # โโโ Authentication endpoints
โ โ โโโ contact/ # โโโ Contact form handler
โ โ โโโ chatbot/ # โโโ AI chatbot endpoint
โ โ โโโ send-review/ # โโโ Review submission
โ โ
โ โโโ ๐ dashboard/ # User dashboard
โ โโโ ๐ login/ # Auth pages
โ โโโ ๐ visualizer/ # Algorithm visualizer pages
โ โ
โ โโโ ๐ components/ # Shared UI components
โ โ โโโ dashboard/ # โโโ Heatmap, streaks
โ โ โโโ models/ # โโโ Data structure models
โ โ โโโ ui/ # โโโ Reusable UI primitives
โ โ
โ โโโ layout.jsx # Root layout
โ โโโ page.jsx # Landing page
โ
โโโ ๐ lib/ # Utility libraries
โ โโโ supabase.js # โโโ Supabase client config
โ โโโ activity.js # โโโ Activity tracking logic
โ โโโ gtag.js # โโโ Google Analytics helper
โ
โโโ ๐ utils/ # Helper functions
โโโ ๐ public/ # Static assets
โโโ ๐ docs/ # Documentation
โโโ ๐ security-tests/ # Security test suite
โโโ ๐ .github/ # GitHub Actions workflows
โ
โโโ middleware.js # Next.js middleware (auth, rate limiting)
โโโ tailwind.config.js # Tailwind configuration
โโโ next.config.mjs # Next.js configuration
โโโ eslint.config.mjs # ESLint configuration
โโโ package.json # Dependencies & scripts
โโโ next-sitemap.config.js # SEO sitemap generation
We ๐ contributions! AlgoBuddy is built by the community, for the community.
| Area | What you can do |
|---|---|
| ๐ Bug Fixes | Squash bugs and resolve issues |
| ๐จ UI/UX | Improve responsiveness, accessibility, design |
| ๐ฎ New Visualizers | Add new DSA visualizers & animations |
| ๐ Documentation | Improve guides, README, contributor docs |
| โก Performance | Optimize app performance & efficiency |
| ๐ Themes | Enhance dark/light mode experience |
# 1. Fork this repo and clone your fork
git clone https://github.com/YOUR_USERNAME/AlgoBuddy.git
# 2. Create a feature branch
git checkout -b feature/your-feature-name
# 3. Make your changes and commit
git commit -m "feat: describe your change"
# 4. Push and open a PR
git push origin feature/your-feature-name๐ For detailed guidelines, please read our Contributing Guide and Code of Conduct.
- ๐ Browse open issues or create a new one
- ๐ฌ Comment asking to be assigned
- โณ Wait for maintainer assignment before starting
- ๐ Submit a PR referencing the issue number
This project is licensed under the MIT License โ see the LICENSE file for details.
Built with ๐ by the AlgoBuddy community
๐ Website ยท ๐ข Discord ยท ๐ Issues ยท ๐ Pull Requests




