AI Code Review Dashboard is a desktop-first workspace for reviewing GitHub pull requests with a mix of heuristics, structured analysis, and optional LLM-generated summaries. The repository combines a FastAPI backend, a Next.js dashboard, and a Tauri shell that packages the app as a Windows desktop executable.
The packaged desktop app is currently branded in-window as Review Command Center, but the repository is organized and documented around the AI Code Review Dashboard project name for open-source and portfolio use.
- GitHub OAuth sign-in and repository sync
- Pull request snapshotting, analysis history, and dashboard metrics
- Static, security, and architecture heuristics for changed files and diffs
- Optional AI-generated summaries and structured findings
- JSON and Markdown export support plus GitHub publishing hooks
- Desktop packaging with a local backend sidecar for Windows builds
- Backend: Python 3.11, FastAPI, SQLAlchemy, SQLite or Postgres, optional Redis
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS, React Query
- Desktop: Tauri 2, Rust, PyInstaller sidecar packaging
- Quality: Ruff, Pytest, ESLint, TypeScript type-checking
- CI: GitHub Actions via
.github/workflows/ci.yml
.
|-- backend/ FastAPI API, analysis pipeline, worker, tests
|-- frontend/ Next.js app plus Tauri desktop shell
|-- docs/ Deployment and release notes
|-- scripts/ Repository-level helper scripts
|-- .github/workflows/ CI automation
`-- README.md
cd backend
python -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
pip install -e ".[dev]"
copy .env.example .env.local
make devDefault API URL: http://localhost:8000/api/v1
cd frontend
npm ci
copy .env.example .env.local
npm run dev:webDefault web URL: http://localhost:3000
cd frontend
npm run desktop:devThe desktop dev script starts the backend automatically if http://localhost:8000/api/v1/health is not already healthy.
Repository-safe examples live in:
Backend variables you will typically need:
SECRET_KEYDATABASE_URLREDIS_URLGITHUB_CLIENT_IDGITHUB_CLIENT_SECRETorGITHUB_CLIENT_SECRET_FILEGITHUB_APP_IDGITHUB_APP_PRIVATE_KEY_FILEGITHUB_WEBHOOK_SECRETOPENAI_API_KEYOPENAI_MODEL
Frontend variables you will typically need:
NEXT_PUBLIC_API_BASE_URLAICR_DESKTOP_API_BASE_URLfor packaged desktop overrides
For local development, prefer .env.local files. For deployed environments, prefer platform secret stores or environment variables instead of committed .env files.
Use a GitHub OAuth App for user sign-in.
- Create an OAuth App in GitHub.
- Set the callback URL to
http://localhost:8000/api/v1/auth/github/callbackfor local development. - Put the client ID in
GITHUB_CLIENT_ID. - Put the client secret in
GITHUB_CLIENT_SECRETor, preferably, pointGITHUB_CLIENT_SECRET_FILEat a local file outside version control.
Use a GitHub App if you want to publish summaries, inline comments, or checks back to pull requests.
- Create a GitHub App with access to pull requests, contents, checks, metadata, and webhooks.
- Download the private key and store it outside the repository when possible.
- Set
GITHUB_APP_ID,GITHUB_APP_PRIVATE_KEY_FILE, andGITHUB_WEBHOOK_SECRET. - Install the GitHub App on the repositories you want the dashboard to analyze.
cd frontend
npm ci
npm run build:webStatic export output: frontend/out
cd backend
pip install -e ".[desktop]"
cd ..\frontend
npm ci
npm run desktop:buildImportant output locations:
- Static web assets:
frontend/out - Intermediate PyInstaller sidecar:
backend/.desktop-build/dist - Bundled sidecar copy:
frontend/src-tauri/binaries - Windows installer and desktop bundle:
frontend/src-tauri/target/release/bundle/nsis
You can also use scripts/release.ps1 to run the standard Windows release flow.
Suggested screenshot set for a public repository:
- Dashboard overview
- Repository and pull request queue
- Pull request detail workspace
- Analysis results with findings filters
- Settings and integration status
GitHub is not connected: confirm the OAuth app callback URL and client secret configuration.GITHUB_APP_PRIVATE_KEY_FILEerrors: verify the file exists and the path is readable by the backend.OPENAI_API_KEYerrors in desktop or production mode: setLLM_ENABLED=falseor provide a valid key.cargoorrustcmissing: install Rust fromhttps://rustup.rs/before runningnpm run desktop:build.- Desktop build cannot find
PyInstaller: runpip install -e ".[desktop]"inbackendfirst.
- A live GitHub Actions badge is intentionally not hard-coded yet because this workspace is not currently attached to a GitHub repository remote.
- Generated folders, databases, desktop binaries, logs, and local secret files are ignored by design and should not be committed.