{"id":51456697,"url":"https://github.com/arvarik/toolbox","last_synced_at":"2026-07-06T01:01:54.206Z","repository":{"id":364914587,"uuid":"1266763442","full_name":"arvarik/toolbox","owner":"arvarik","description":"System Design Interview Study App","archived":false,"fork":false,"pushed_at":"2026-06-22T06:21:31.000Z","size":2678,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-22T08:14:12.539Z","etag":null,"topics":["docker","gemini-api","interview-prep","nodejs","react","self-hosted","sqlite","system-design"],"latest_commit_sha":null,"homepage":"https://arvarik.com/toolbox","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arvarik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T23:45:40.000Z","updated_at":"2026-06-22T06:21:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/arvarik/toolbox","commit_stats":null,"previous_names":["arvarik/toolbox"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/arvarik/toolbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvarik%2Ftoolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvarik%2Ftoolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvarik%2Ftoolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvarik%2Ftoolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arvarik","download_url":"https://codeload.github.com/arvarik/toolbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvarik%2Ftoolbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35174071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gemini-api","interview-prep","nodejs","react","self-hosted","sqlite","system-design"],"created_at":"2026-07-06T01:01:51.846Z","updated_at":"2026-07-06T01:01:53.453Z","avatar_url":"https://github.com/arvarik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🧰 Toolbox\n\n**A self-hosted AI study hub for system design interviews**\n\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)](https://hub.docker.com)\n[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)\n\n\u003c/div\u003e\n\n![Toolbox Chat Interface](docs/screenshots/screenshot-chat.png)\n\nToolbox is a self-hosted web app that brings together everything you need to prepare for system design interviews: an AI tutor, an editable knowledge library, a drag-and-drop architecture whiteboard, spaced-repetition flashcards, and a Pomodoro timer — all in one dark, focused interface.\n\n---\n\n## ✨ Features\n\n| Feature | Description |\n|---------|-------------|\n| 🤖 **AI Learning Chat** | Session-based chat with 4 AI personas (Socratic, ELI5, Strict, Devil's Advocate), topic-specific starter prompts, and concept map generation |\n| 📖 **Knowledge Guide** | 7-pillar structured library with AI-assisted Commit flow to save learnings from chat sessions |\n| 🎨 **Architecture Builder** | Drag-and-drop whiteboard with 20+ components, bezier connections, templates, and AI design verification |\n| 📚 **Flashcards + SRS** | SM-2 spaced repetition system with per-deck settings, card browser, deck stats, and a study activity heatmap |\n| 🧠 **Feynman Simulator** | Voice-enabled Feynman technique: explain a concept, get structured AI feedback on gaps |\n| 🔀 **Interleaved Review** | Study all due cards across every deck in a single shuffled session |\n| 🍅 **Pomodoro Timer** | Persistent focus timer with plant gamification (🌱→🌸→🥀) and Strict Mode |\n| ⚙️ **Shadow Memory** | The AI learns your timeline, strengths, and goals across sessions for personalized coaching |\n\n---\n\n## 📸 Screenshots\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eArchitecture Whiteboard Builder\u003c/em\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eStructured Knowledge Guide\u003c/em\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/screenshot-builder.png\" alt=\"Architecture Builder\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/screenshot-guide.png\" alt=\"Knowledge Guide\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eSpaced Repetition Flashcards\u003c/em\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eFeynman Technique Simulator\u003c/em\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/screenshot-flashcards.png\" alt=\"Flashcards\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/screenshot-feynman.png\" alt=\"Feynman Simulator\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🚀 Quick Start\n\n### Docker Compose (Recommended)\n\n```bash\ngit clone https://github.com/arvarik/toolbox.git\ncd toolbox\ncp .env.example .env\n# Add your API keys to .env (or configure via the Settings UI)\ndocker compose up -d\n```\n\nAccess at `http://your-server:3100`.\n\n\u003e Get a free Gemini API key at [Google AI Studio](https://aistudio.google.com/apikey)\n\n### Local Development\n\n```bash\nnpm install\nnpm run dev   # Vite (5173) + Express (3100)\n```\n\n---\n\n## 📚 Documentation\n\n| Document | Description |\n|----------|-------------|\n| [User Guide](docs/user-guide.md) | Complete guide to all features and workflows |\n| [API Reference](docs/api.md) | Full REST API — every endpoint, request/response shape |\n| [SRS Algorithm](docs/srs-algorithm.md) | SM-2 implementation, state machine, Hypercorrection Penalty |\n| [Deployment Guide](docs/deployment.md) | Docker, Proxmox LXC, Nginx/Caddy setup |\n| [Architecture](docs/architecture.md) | Tech stack, data model, AI integration |\n| [Design Reference](docs/design.md) | CSS design system, component patterns, motion guidelines |\n| [Agent Instructions](docs/AGENTS.md) | For AI coding agents — rules, patterns, gotchas |\n| [Contributing](CONTRIBUTING.md) | Dev setup, coding standards, PR process |\n\n---\n\n## ⚙️ Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PORT` | `3100` | Server port |\n| `DB_PATH` | `./data/toolbox.db` | SQLite database path |\n| `GEMINI_API_KEY` | — | Gemini API key (can also be set via Settings UI) |\n| `CLAUDE_API_KEY` | — | Claude API key (can also be set via Settings UI) |\n\nAll user data lives in a single SQLite file — back it up by copying that file.\n\n---\n\n## 🛠️ Tech Stack\n\nReact 19 · Vite · React Router · Zustand · Vanilla CSS · Node.js · Express · SQLite (`better-sqlite3`) · Google Gemini API · Docker\n\n---\n\n## 📄 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farvarik%2Ftoolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farvarik%2Ftoolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farvarik%2Ftoolbox/lists"}