CodePair is a platform for conducting remote technical interviews with integrated code editing and real-time communication features. It helps technical teams evaluate candidates through live coding sessions with built-in video, chat, and collaborative code editing capabilities.
- Framework: React with TypeScript + Tanstack, TailwindCSS
- Editor: Monaco Editor, TipTap (for the Notes)
- HTTP Servers: Gin (Core) + nbio (Non-blocking HTTP Server), Fiber (Peer)
- Database: PostgreSQL, GORM
- Real-time: WebRTC, WebSocket
- Utils: Zap Logger, JWT
Tool | Version |
---|---|
Node.js | v22+ |
Go | v1.22+ |
Docker | Latest |
PNPM | v8+ |
- Clone the repository:
git clone https://github.com/elskow/codepair.git
cd codepair
- Set up the development environment:
make setup
- Start the development servers:
make dev
Command | Description |
---|---|
make dev-deps |
Install dependencies |
make dev |
Start all services |
make dev-core |
Start core service |
make dev-peer |
Start peer service |
make dev-client |
Start client application |
make stop |
Stop all services |
make clean |
Clean up environment |
graph TD
Client[Client Application] --> Core[Core Service]
Client --> Peer[Peer Service]
Core --> DB[(PostgreSQL)]
Peer --> WebRTC[WebRTC Signaling]
CodePair follows a microservices architecture with three main components:
- Core Service: Handles business logic and data management
- Peer Service: Manages WebRTC connections and real-time communication
- Client Application: Provides the user interface and interaction layer