Skip to content

Repository files navigation

LowLevelDesign.ai

LowLevelDesign.ai

AI-powered low-level design mock interviewer.
Code. Explain. Get scored β€” completely free.

↓ Download & setup

Latest Release GitHub Downloads (all assets, all releases) Stars License


An Electron desktop app for low-level design interview practice. An AI generates realistic problems, you design and code the classes, and an AI judge scores your performance.

Use it 100% free (unlimited) with free models on OpenRouter. No subscriptions, no sign-ups beyond the API key.


Features

🎲 AI Interview Question Generator

One-click generation of realistic LLD interview questions across diverse domains, design patterns, and system architectures.

Pick Ambiguous mode for open-ended scenarios that need clarifying questions, or Detailed mode for fully specified method contracts. Each question is scoped to your time budget (45 / 60 / 90 / 120 min) in Python or Java.

You can add a topic or custom prompt to steer the question in a specific direction, or add a concurrency requirement for thread-safety practice.

Question Generator
Configure problem mode, language, time budget, and concurrency requirements


πŸ€– AI Interviewer Chatbot

A simulated interviewer that sits alongside your problem statement in a chat panel. It behaves like a real interviewer β€” answers scope and edge-case questions with concrete rules, but never gives away the solution.

"Can a small package go into a large compartment?" β†’ "For now, match the size exactly. If there's no matching compartment, reject the deposit."

"Do we need thread-safety?" β†’ "No, assume single-threaded usage. Thread-safety is out of scope."

"Should I use a dict or a list?" β†’ "That's a design decision for you to make. What trade-offs are you considering?"

The full conversation is saved as part of your session.

Interviewer Chatbot
AI interviewer chat β€” ask clarifying questions just like a real interview


πŸ’» Code Workspace with Run & Terminal

Write and run real code. The workspace is a multi-file code editor with file explorer, tabs, and auto-save:

  • Run & test β€” real local execution with Python and Java, streamed output and pass/fail status
  • Interactive terminal β€” per-session workspace on disk with full shell access
  • Session timer β€” time budget with time-spent tracking

External libraries can be enabled per session.

Code workspace
Code workspace with IntelliSense autocomplete, documentation flyout, and terminal test runner


πŸ§ͺ AI Test Generation

One-click generation of runnable tests from your actual classes. Tests cover every required method including edge cases. Sessions with concurrency enabled get one extra multi-threaded check.


βš–οΈ AI Judge & Scoring

Open any session and run the AI Judge to get a detailed evaluation report. The judge analyzes your code, clarifications, and test output β€” and scores you across 6 dimensions:

Dimension What it evaluates
Problem Analysis Did you model the right entities and responsibilities?
Class Design Are classes clean and well-organized?
Code Quality Is the code readable and encapsulated?
Extensibility Can new rules be added without rewriting?
Concurrency & Edge Cases Are invalid inputs and threads handled?
Testing & Correctness Did tests run and pass?

Each dimension receives a score with specific observations referencing your actual code and design choices. The report also includes an overall score, seniority level, strengths, and areas for improvement.

AI Judge Report
Detailed judge report with actionable suggestions, interview rationale, and architecture diagrams


πŸ“ Multi-Session Workspace & More

  • Multiple sessions β€” create and delete sessions, each with its own problem and code
  • Auto-save β€” your work is saved automatically as you code, never lose progress
  • Dark & light mode β€” full theme support, toggle from settings
  • Configurable models β€” swap in any model from OpenRouter
  • External libraries β€” opt-in packages per session
  • Mermaid diagrams β€” design diagrams rendered inline in judge feedback

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Python 3 and/or Java 17+ for local run and test

Install & Run

# Clone the repository
git clone https://github.com/ccd97/LowLevelDesign.ai.git
cd LowLevelDesign.ai

# Install dependencies
npm install

# Start the app
npm run dev

🎯 How to Use

1

Add your API key
Open βš™οΈ Settings (gear icon in the top bar) β†’ paste your OpenRouter key.
β†’ Step-by-step OpenRouter setup guide (free models available)

2

Create a session
Click New Session β†’ pick a language, mode, and time budget. Add a topic if you want.

3

Clarify the problem
Use the πŸ’¬ Interviewer Chat to ask scope and edge-case questions before you code.

4

Design and code
Implement your classes in the editor. Click Run to execute, or Generate Tests for a runnable suite.

5

Get scored
Click Evaluate when you're done. The judge scores all 6 dimensions and lists improvements.

6

Iterate
Fix the feedback, re-run tests, and re-evaluate. Every session is saved locally.

βš™οΈ Setup & Configuration

Configure settings anytime via the Settings dialog (βš™οΈ icon in the top-right header).

Settings & Configuration
Theme, model selection, standard library IntelliSense, and runtime paths

πŸ”‘ OpenRouter API

LowLevelDesign.ai uses OpenRouter for question generation, interviewer chat, test generation, and evaluation scoring.

  • API Key β€” follow the OpenRouter Setup Guide to get a free key and configure your model. Free models are supported out of the box.

πŸ› οΈ Runtime Paths

Python 3 and Java 17+ are auto-detected from your system. Custom interpreter paths or virtual environments (venv) can be specified in Settings if needed.

🎨 Workspace Preferences

  • STL IntelliSense β€” built-in hover documentation and completions for Python and Java standard libraries.
  • External Libraries β€” opt-in third-party packages (pip dependencies / Java JARs) configurable per session.

πŸ—οΈ Building from Source

Build Commands

npm run dev             # Dev server + Electron
npm run build           # TypeScript compile + Vite production build
npm run start           # Launch built Electron app
npm run package:mac     # macOS β†’ release/*.dmg
npm run package:linux   # Linux β†’ release/*.AppImage
npm run package:win     # Windows β†’ release/*.exe

Tech Stack

  • Electron β€” desktop shell
  • React 19 + TypeScript (strict) β€” UI
  • Vite β€” build tool
  • Tailwind CSS β€” styling
  • Lucide β€” icons
  • Mermaid β€” diagrams in judge feedback

Project Structure

src/
β”œβ”€β”€ App.tsx          # Root component, all app state lives here
β”œβ”€β”€ main.tsx         # React entry point
β”œβ”€β”€ index.css        # Tailwind + global styles
β”œβ”€β”€ components/      # Problem, editor, terminal, modals, viewers
β”œβ”€β”€ services/        # AI calls, starter templates, feedback
β”œβ”€β”€ types/           # Session, settings, evaluation, API types
β”œβ”€β”€ utils/           # Parsing, validation, file helpers
└── vite-env.d.ts    # Window API type declarations
electron/
β”œβ”€β”€ main.ts          # Main process β€” window + IPC handlers
β”œβ”€β”€ preload.ts       # Context bridge β€” exposes window.electronAPI
β”œβ”€β”€ storage.ts       # Settings + session persistence
β”œβ”€β”€ runner.ts        # Local code execution
└── terminal.ts      # Per-session workspace + shell

🀝 Contributing

Contributions are welcome! Feel free to open issues, suggest features, or submit pull requests.


πŸ“„ License

MIT β€” use it, modify it, ship it.

Releases

Packages

Contributors

Languages