BlindCode Arena is a controlled blind coding competition platform designed for lab-based environments. It introduces a blurred code editor mechanic that limits visual clarity while coding, encouraging participants to rely on structured thinking, memory discipline, and intentional code design rather than constant visual scanning and trial-and-error debugging.
The platform combines a desktop coding client (Tauri), a backend API, and an admin monitoring dashboard to create a complete competition environment suitable for college contests, lab assessments, and interview simulations.
Make sure the following tools are installed before setting up the project.
Install Node.js (recommended: LTS).
Package manager used in this monorepo.
npm install -g pnpmInstall Rust using winget:
winget install Rustlang.RustupAfter installation verify:
rustc --version
cargo --versionRequired for compiling the Tauri Rust backend.
Install via:
winget install Microsoft.VisualStudio.2022.BuildToolsDuring installation select:
Desktop development with C++
git --versionClone the repository:
git clone https://github.com/Apoorv012/BlindCode.git
cd BlindCodeInstall dependencies for the entire monorepo:
pnpm installThe project is organized as a Turborepo monorepo.
BlindCode
│
├─ apps
│ ├─ desktop # Tauri desktop coding client
│ ├─ api # Express backend API
│ └─ admin # Admin monitoring dashboard
│
├─ packages
│ ├─ ui # Shared UI components
│ ├─ eslint-config # Shared ESLint configuration
│ └─ typescript-config # Shared TypeScript configuration
│
├─ turbo.json
└─ pnpm-workspace.yaml
Details about the system components are available here:
➡️ - docs/applications.md
Start backend and admin services:
pnpm devThis launches:
- API server
- Admin dashboard
To run the desktop application:
pnpm tauriThis launches the BlindCode desktop client using Tauri.
Contributions are welcome.
If you would like to contribute:
- Fork the repository
- Create a new feature branch
git checkout -b feature/your-feature
- Make your changes
- Commit clearly
git commit -m "Add: meaningful feature description"
- Push to your fork and open a pull request
Before submitting a PR, please ensure:
- the project builds successfully
- linting passes
- code follows the repository style conventions
For major changes or architectural decisions, it is recommended to open an issue first to discuss the proposal.
License information will be added soon.