An open API service indexing awesome lists of open source software.

https://github.com/arvarik/toolbox

System Design Interview Study App
https://github.com/arvarik/toolbox

docker gemini-api interview-prep nodejs react self-hosted sqlite system-design

Last synced: about 2 hours ago
JSON representation

System Design Interview Study App

Awesome Lists containing this project

README

          

# 🧰 Toolbox

**A self-hosted AI study hub for system design interviews**

[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://hub.docker.com)
[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)

![Toolbox Chat Interface](docs/screenshots/screenshot-chat.png)

Toolbox 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.

---

## ✨ Features

| Feature | Description |
|---------|-------------|
| πŸ€– **AI Learning Chat** | Session-based chat with 4 AI personas (Socratic, ELI5, Strict, Devil's Advocate), topic-specific starter prompts, and concept map generation |
| πŸ“– **Knowledge Guide** | 7-pillar structured library with AI-assisted Commit flow to save learnings from chat sessions |
| 🎨 **Architecture Builder** | Drag-and-drop whiteboard with 20+ components, bezier connections, templates, and AI design verification |
| πŸ“š **Flashcards + SRS** | SM-2 spaced repetition system with per-deck settings, card browser, deck stats, and a study activity heatmap |
| 🧠 **Feynman Simulator** | Voice-enabled Feynman technique: explain a concept, get structured AI feedback on gaps |
| πŸ”€ **Interleaved Review** | Study all due cards across every deck in a single shuffled session |
| πŸ… **Pomodoro Timer** | Persistent focus timer with plant gamification (πŸŒ±β†’πŸŒΈβ†’πŸ₯€) and Strict Mode |
| βš™οΈ **Shadow Memory** | The AI learns your timeline, strengths, and goals across sessions for personalized coaching |

---

## πŸ“Έ Screenshots


Architecture Whiteboard Builder
Structured Knowledge Guide


Architecture Builder
Knowledge Guide


Spaced Repetition Flashcards
Feynman Technique Simulator


Flashcards
Feynman Simulator

---

## πŸš€ Quick Start

### Docker Compose (Recommended)

```bash
git clone https://github.com/arvarik/toolbox.git
cd toolbox
cp .env.example .env
# Add your API keys to .env (or configure via the Settings UI)
docker compose up -d
```

Access at `http://your-server:3100`.

> Get a free Gemini API key at [Google AI Studio](https://aistudio.google.com/apikey)

### Local Development

```bash
npm install
npm run dev # Vite (5173) + Express (3100)
```

---

## πŸ“š Documentation

| Document | Description |
|----------|-------------|
| [User Guide](docs/user-guide.md) | Complete guide to all features and workflows |
| [API Reference](docs/api.md) | Full REST API β€” every endpoint, request/response shape |
| [SRS Algorithm](docs/srs-algorithm.md) | SM-2 implementation, state machine, Hypercorrection Penalty |
| [Deployment Guide](docs/deployment.md) | Docker, Proxmox LXC, Nginx/Caddy setup |
| [Architecture](docs/architecture.md) | Tech stack, data model, AI integration |
| [Design Reference](docs/design.md) | CSS design system, component patterns, motion guidelines |
| [Agent Instructions](docs/AGENTS.md) | For AI coding agents β€” rules, patterns, gotchas |
| [Contributing](CONTRIBUTING.md) | Dev setup, coding standards, PR process |

---

## βš™οΈ Configuration

| Variable | Default | Description |
|----------|---------|-------------|
| `PORT` | `3100` | Server port |
| `DB_PATH` | `./data/toolbox.db` | SQLite database path |
| `GEMINI_API_KEY` | β€” | Gemini API key (can also be set via Settings UI) |
| `CLAUDE_API_KEY` | β€” | Claude API key (can also be set via Settings UI) |

All user data lives in a single SQLite file β€” back it up by copying that file.

---

## πŸ› οΈ Tech Stack

React 19 Β· Vite Β· React Router Β· Zustand Β· Vanilla CSS Β· Node.js Β· Express Β· SQLite (`better-sqlite3`) Β· Google Gemini API Β· Docker

---

## πŸ“„ License

MIT