Skip to content

Repository files navigation

DevCord IDE

Real-time collaborative code learning platform with Docker execution & AI-powered explanations.

Architecture

DevCord/
├── client/          # Next.js 16 + React + Tailwind (dark theme)
├── server/          # Node.js + Express + Socket.io + Sequelize
├── docker/          # Runner Dockerfiles (Python, Node, Java)
├── docker-compose.yml
└── .env.example

Tech Stack

Layer Technology
Frontend Next.js (App Router), React, Tailwind CSS
Editor Monaco Editor (@monaco-editor/react)
Realtime Socket.io (delta-based code sync)
Backend Express, express-async-errors
Database MariaDB + Sequelize ORM
Execution Docker (node-docker-api) — ephemeral containers
AI Google Gemini API
Auth JWT HS256 (access + httpOnly refresh cookie)
Security Helmet, express-rate-limit, CORS, CSP

Quick Start

1. Environment

cp .env.example .env
# Edit .env with your MariaDB credentials, JWT secret, and Gemini API key

2. Database

Start MariaDB (via Docker or local):

docker compose up db -d

3. Server

cd server
npm install
npm run dev

4. Client

cd client
npm install
npm run dev

5. Docker Runners (for code execution)

docker build -t devcord-python -f docker/Dockerfile.python .
docker build -t devcord-node -f docker/Dockerfile.node .
docker build -t devcord-java -f docker/Dockerfile.java .

Features

  • Discord-style UX — Servers → Rooms hierarchy, dark theme
  • Live collaboration — Real-time code sync via WebSocket deltas
  • Multi-language execution — Python, Node.js, Java in sandboxed Docker
  • AI explanations — Gemini-powered code analysis in EN/FR/AR
  • Role-based access — Admin / Teacher / Student with JWT auth
  • Security — Helmet CSP, rate limiting, Docker isolation (no network, memory caps)

API Routes

Method Route Auth Description
POST /api/auth/register Register user
POST /api/auth/login Login, get JWT
POST /api/auth/refresh Cookie Refresh access token
POST /api/auth/logout Clear refresh cookie
GET /api/servers JWT List user's servers
POST /api/servers JWT + admin/teacher Create server
POST /api/servers/:id/members JWT + admin Invite member
GET /api/servers/:id/rooms JWT + member List rooms
POST /api/servers/:id/rooms JWT + admin/teacher Create room
GET /api/rooms/:id JWT + member Get room + files
POST /api/run JWT (rate-limited) Execute code
POST /api/ai/explain JWT (rate-limited) AI explanation

Security

  • Docker containers: NetworkMode: none, 128MB memory, 50% CPU cap
  • Containers deleted after every execution
  • Input sanitization before Docker Cmd
  • JWT: 15min access + 7-day httpOnly refresh cookie
  • Rate limiting: 100 req/10min global, 10 req/min on /run and /ai

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages